是否可能,如果是,它是如何完成的?在Windows或Linux命令行上运行的常用>
和>>
在此上下文中不起作用。
答案 0 :(得分:11)
您可以通过控制台以编程方式执行此操作:
import java.io.FileOutputStream
import scala.Console
Console.setOut(new FileOutputStream("<output file path>"))
从现在起,所有print
和println
都将被定向到此文件
答案 1 :(得分:4)
目前还不清楚您的问题究竟是如何使用这样的东西的。您尝试做的事情的一个例子可能会有所帮助。
这是一个隐式函数,它将添加一个简单的运算符,将任何对象作为String写入文件。 (请注意,我使用>>
表示unix样式>
,因为>
已经在Scala中有意义(“小于”)。如果您使用其他运算符,则可以将其替换为等。)
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()
}
}
}
您可以这样使用它:
scala> List(1,2,3) >> "out.txt"
在包含List(1, 2, 3)
答案 2 :(得分:0)
看起来对我很好:
dcs@ayanami:~/github/scala (master)$ scala -e "println(2 * 2)" > output
dcs@ayanami:~/github/scala (master)$ cat output
4