Scala-使用foreach将文件写入文件

时间:2016-07-23 14:53:38

标签: scala

我正在尝试将一个列表写入文件中,并且我正在尝试使用foreach调用,就像使用println一样。 这有效:

list.foreach(println)

但这不起作用:

val file = "whatever.txt"
val writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)))
list.foreach(writer.write)

我已经尝试了其他一些方法来打印到一个文件,并且所有这些方法都没有运气, 我做错了什么?

2 个答案:

答案 0 :(得分:2)

这是一个编译和运行的完整示例。您的代码遗失close(),因此您在BufferedWriter中写的所有内容都保留在缓冲区中,并且从未到达磁盘。

import java.io._

val file = "whatever.txt"
val writer = new BufferedWriter(new FileWriter(file))
List("this\n","that\n","other\n").foreach(writer.write)
writer.close()

答案 1 :(得分:0)

writer需要刷新到磁盘,然后关闭。

writer.flush
writer.close

或者您可以尝试其他方式:使用PrintWriter