PrintWriter创建空文件
我有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: Matjaz Mav Naslov: Ppot 6, 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(); }
另一种方法是使用autoFlush打开PrintWriter
。 这可以通过实现
out = new PrintWriter(new FileOutputStream("filename.txt"), true);
如果你只做out.close()
,它也可以解决手头的问题,因为它会在internally flush
内部缓冲区中写入的内容。
希望这可以帮助。