PrintWriter 创建空文件

问题描述 投票:0回答:4

我有

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

谢谢!

java file-io printwriter
4个回答
10
投票

使用此构造函数创建您的

PrintWriter
,将第一个参数更改为
OutputStream
:

out = new PrintWriter(new FileOutputStream("filename.txt"), true);

打开自动刷新,或者,在完成写入后使用

out.close()
关闭写入器。


3
投票

您应该在这个程序中使用

out.close()
语句。


2
投票

out.close(); 失踪了。 您必须将其放入才能关闭会话。


1
投票
   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
将内容写入其内部缓冲区。

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.