2016-07-23 47 views
1

我正在嘗試編寫一個文件列表,我正在嘗試使用foreach調用它,正如可以使用println所做的一樣。 這個工程:Scala-使用foreach將文件列表寫入文件

list.foreach(println) 

,但是這是行不通的:

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

我已經嘗試了一些其他的方式來打印到文件,並在所有的人都沒有運氣, 什麼的我做錯了?

+0

「沒有運氣,一個I做錯了什麼」或許,如果你告訴我們什麼是行不通的,而不是「不工作」和「沒有運氣」我們也許能夠幫助 –

回答

0

以下是編譯和運行一個完整的例子。您的代碼丟失了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() 
+0

StackOverflow不是代碼轉儲網站 – Ven

0

寫入器需要刷新到磁盤,然後關閉。

writer.flush 
writer.close 

或者你可以嘗試另一種方法:使用PrintWriter的

+0

我的代碼寫不通過構建 – boaz

+2

「不通過構建」,我們如何知道這一點?心靈感應?請將錯誤消息添加到您的問題。 –