我有
StringBuilder sb
,我希望将该字符串保存为 *.txt
文件。问题是我得到 "filename.txt"
但它完全是空的,控制台中也没有错误。
这是我的代码:
System.out.print(sb.toString());
PrintWriter out;
try{
out = new PrintWriter("filename.txt");
out.println(sb.toString());
}catch (Exception e) {
e.printStackTrace();
}
控制台输出:
[19/3/2014]
Ime in priimek: Janez Novak
Naslov: Ulica 1, 1000 Ljubljana
Telefon: 040 111 222
Registerska št.: LJ 1234
Znamka: Citroen
Model: C4
Letnik: 2005
Opombe: Popravi
谢谢!
使用此构造函数创建您的
PrintWriter
,将第一个参数更改为 OutputStream
:
out = new PrintWriter(new FileOutputStream("filename.txt"), true);
打开自动刷新,或者,在完成写入后使用
out.close()
关闭写入器。
您应该在这个程序中使用
out.close()
语句。
out.close(); 失踪了。 您必须将其放入才能关闭会话。
PrintWriter out;
try{
out = new PrintWriter("filename.txt");
out.println(sb.toString());
//add the below lines
out.flush();
out.close();
}catch (Exception e) {
e.printStackTrace();
}
另一种方法是启用
PrintWriter
并启用 autoFlush。这可以通过以下方式实现
out = new PrintWriter(new FileOutputStream("filename.txt"), true);
如果您只执行
out.close()
,也可以解决手头的问题,因为这将internally flush
将内容写入其内部缓冲区。
希望这有帮助。