我有一個列表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