我正在尝试将一个列表写入文件中,并且我正在尝试使用foreach调用,就像使用println一样。 这有效:
list.foreach(println)
但这不起作用:
val file = "whatever.txt"
val writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)))
list.foreach(writer.write)
我已经尝试了其他一些方法来打印到一个文件,并且所有这些方法都没有运气, 我做错了什么?
答案 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