繁体   English   中英

PrintWriter创建空文件

[英]PrintWriter create empty file

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

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM