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内部缓冲区中写入的内容。

希望这可以帮助。