¿Es posible, y si es así cómo se hace? Los habituales >
y >>
que funcionan en la línea de comandos de Windows o Linux no funcionan en este contexto.intérprete interactivo Scala (REPL): ¿cómo redirigir la salida a un archivo de texto?
Respuesta
Puede hacerlo programmaticaly desde la consola:
import java.io.FileOutputStream
import scala.Console
Console.setOut(new FileOutputStream("<output file path>"))
a partir de ahora todos los print
y println
se dirigirían en este archivo
No está claro por su pregunta exactamente cómo desea utilizar tal cosa . Un ejemplo de lo que estás tratando de hacer podría ser útil.
Aquí hay una función implícita que agregará un operador simple que escribe cualquier objeto como una Cadena en un archivo. (Tenga en cuenta que estoy usando >>
en el sentido de estilo Unix desde >
>
ya ha significado en la Scala ("menos"). Puede reemplazar esto con algún otro operador si lo desea.)
implicit def anyToFileOutput(self: Any) = new {
import java.io._
def >>(filename: String) {
val f = new BufferedWriter(new FileWriter(filename))
try {
f.write(self.toString)
} finally {
if (f != null)
f.close()
}
}
}
Usted haría utilizar de esta manera:
scala> List(1,2,3) >> "out.txt"
que produce un archivo, "out.txt" en el directorio de trabajo que contiene List(1, 2, 3)
Esto es lo que estoy tratando de hacer, por ejemplo, si llamo 'calculateSomething (a, b, c)' que devuelve una lista de 'Int's, lo ideal sería que dirija' print' y 'println' declaraciones dentro de 'calculateSomething' a un archivo, y también enviar el resultado de la lista devuelta a un archivo. – Gigatron
Parece estar funcionando bien para mí:
[email protected]:~/github/scala (master)$ scala -e "println(2 * 2)" > output
[email protected]:~/github/scala (master)$ cat output
4
Gracias, pero eso está en la línea de comandos del SO, no dentro de una sesión REPL en ejecución. – Gigatron
@Gigatron Simplemente genere cadenas en lugar de imprimir, y luego es fácil de enviar a los archivos. Por otra parte, si mostró lo que pretende lograr en lugar de preguntar cómo implementar su solución deseada, todos podríamos ser mucho más útiles. –
- 1. ¿Cómo ejecutar un archivo externo desde el intérprete interactivo scala (REPL)?
- 2. ¿Cómo redirigir la salida de DBMS_OUTPUT.PUT_LINE a un archivo?
- 3. ¿Cómo redirigir la salida de Valgrind a un archivo?
- 4. ¿Intérprete interactivo de ActionScript?
- 5. Cómo redirigir la salida de la consola a un archivo de texto
- 6. ¿Cómo redirigir la salida del compilador gcc a un archivo?
- 7. ¿Cómo redirigir la salida del sistema() a un archivo?
- 8. ¿Es posible registrar la salida de Scala REPL?
- 9. Redirigir la salida de django manage.py (en Windows) a un archivo de texto
- 10. Emacs Lisp: ¿Cómo, un búfer interactivo con REPL?
- 11. Redirigir la salida del shell erlang a un archivo
- 12. ¿Hay un intérprete interactivo para C#?
- 13. Scala - Inicializar ambiente REPL
- 14. ¿Cuál es la diferencia entre un REPL y un intérprete?
- 15. Redirigir la salida de grep al archivo
- 16. ¿Cómo recuperar la versión de Scala en REPL?
- 17. ¿Cómo invocar un intérprete de elisp interactivo en Emacs?
- 18. Registro de Java: ¿cómo redirigir la salida a un archivo de registro personalizado para un registrador?
- 19. whiptail: ¿Cómo redirigir la salida a la variable de entorno?
- 20. ¿Cómo puedo redirigir la salida de la función a un archivo en Perl?
- 21. cómo redirigir una salida de un comando a dos archivos
- 22. ¿Puedo redirigir la salida de un programa a gvim?
- 23. ¿Cómo redirigir la salida de recolección de basura detallado a un archivo?
- 24. Scala REPL en Emacs
- 25. Cómo redirigir la salida a un archivo cuyo nombre es la fecha y hora actual?
- 26. Redirigir la salida de registro de la consola Tomcat 7 a un archivo (Windows)
- 27. ¿Cómo redirigir la salida de .exe a un archivo en python?
- 28. ¿Cómo puedo redirigir la salida del puerto COM de Windows a un archivo?
- 29. Redirigir la salida de la consola a winforms ListBox
- 30. REPL/caparazón interactivo con soporte adecuado de PHP 5.3?
'setOut' no funciona en 2.9 REPL debido a [SI-4793] (https://issues.scala-lang.org/browse/SI-4793). Ver [mi respuesta] (http://stackoverflow.com/questions/7219316/println-vs-system-out-println-in-scala/7219519#7219519) – 4e6
Aunque no es perfecto, estoy aceptando que esto es lo más respuesta útil. Noto que a veces no hay nada en el archivo hasta que salgo de REPL. Para evitarlo, se almacena el 'FileOutputStream' en un' val' y luego se invoca 'close' para vaciar el contenido del archivo. – Gigatron