我有一个列表l2,我想将列表元素写入文件。我这样做:如何在scala中将列表元素写入文件?
val fw = new FileWriter("src/results.txt", true) ;
for(k <- 1 to l2.length) {
println(l2(i))
fw.write(l2(i))
i+=1
}
fw.close()
但是,它不写任何东西。这是为什么 ?
我有一个列表l2,我想将列表元素写入文件。我这样做:如何在scala中将列表元素写入文件?
val fw = new FileWriter("src/results.txt", true) ;
for(k <- 1 to l2.length) {
println(l2(i))
fw.write(l2(i))
i+=1
}
fw.close()
但是,它不写任何东西。这是为什么 ?
如果l2
是List(1,2,3)
,那么您正在致电 Writer
类。
这意味着01 02 03
以十六进制格式写入文件。您可以使用hexdump -C src/results.txt
来确认它,请拨打.write(String str)
,尝试fw.write(l2(i).toString)
。
见https://docs.oracle.com/javase/7/docs/api/java/io/Writer.html
为了避免循环,你可以做这样的:
import java.nio.file.Files;
import java.nio.file.Paths
val content = l2.mkString("\n").getBytes
Files.write(Paths.get("src/results.txt"), content)
你确定L2是不是空的? – 2014-12-04 09:07:02
是的,它不是空的。这就是为什么我在fw.write上面做了println,它正确地打印了一切。这是一个像这样的清单(1,2,3) – 2014-12-04 09:07:49
您是否定义了'i'? – 2014-12-04 09:26:07