我有以下代码,它应该一次写入一行文件,直到达到^ EOF。
import java.io.PrintWriter
import java.io.File
object WF {
def writeline(file: String)(delim: String): Unit = {
val writer = new PrintWriter(new File(file))
val line = Console.readLine(delim)
if (line != "^EOF") {
writer.write(line + "\n")
writer.flush()
}
else {
sys.exit()
}
}
}
var counter = 0
val filename = Console.readLine("Enter a file: ")
while (true) {
counter += 1
WF.writeline(filename)(counter.toString + ": ")
}
出于某种原因,在控制台上,一切看起来都很好,但是当我实际读取文件时,没有写入任何内容!我的计划有什么问题?
答案 0 :(得分:3)
每次创建新PrintWriter
时,您都会删除现有文件。使用类似FileWriter
的内容,它允许您指定要打开文件以进行追加:
val writer = new PrintWriter(new FileWriter(new File(file), true))
这应该有用,虽然这里的逻辑很混乱。
答案 1 :(得分:1)
请改用val writer = new FileWriter(new File(file), true)
。第二个参数告诉FileWriter追加到该文件。见http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html
答案 2 :(得分:0)
我猜测问题是你忘了关闭作家。