在无限循环的每次迭代期间,我是否可以使用BufferedWriter(或任何编写器类)将新行输出到文本文件,直到程序停止?据我所知,必须调用BufferedWriter.close()命令才能将文本保存到文件中,但如果编写器在循环内关闭,程序将抛出异常 - 显然,如果编写器设置为关闭在循环之外,语句无法访问。在此先感谢您的帮助。
以下是相关代码:
int count = 0;
BufferedWriter out = new BufferedWriter(new FileWriter("myTextFile.txt"));
while (true)
{
if(count == 0){
out.write(myString);
out.newLine();
System.out.println(myString);
} else {
out.append(myString);
out.newLine();
System.out.println(myString);
}
System.out.println("count = " + count);
count++;
out.flush();
out.close();
}
答案 0 :(得分:1)
如果您只是想确保所有数据都写入文件, flush 就会执行此操作。关闭主要是为了释放资源,特别是如果你明确地调用flush
flush - 刷新流。
关闭 - 关闭流,先冲洗它。关闭流后,进一步的write()或flush()调用将导致抛出IOException。关闭之前关闭的流无效。
更多信息:http://docs.oracle.com/javase/8/docs/api/java/io/BufferedWriter.html
答案 1 :(得分:1)