PrintWriter不打印完整的字符串

时间:2012-12-10 18:15:38

标签: java string io filewriter printwriter

我有以下代码

FileWriter F = new FileWriter("out.txt");
PrintWriter H = new PrintWriter(F);
H.print(split[split.length - 2]);
H.print("END");

但是,当我检查txt时,最后一个文本不是'END',而是字符串中单词的一部分。这是“修复”

当我这样做时

FileWriter F = new FileWriter("out.txt");
PrintWriter H = new PrintWriter(F);
System.out.print(split[split.length - 2]);

我得到的最后一段文字是数字'49' - 这是正确的。

PrintWriter似乎没有完全写出字符串。但是,当我这样做时

FileWriter F = new FileWriter("out.txt");
PrintWriter H = new PrintWriter(F);
H.print(split[split.length - 2]);
H.println(pdfInText)://Another string
H.print("END");

“原始”文本现在实际上已经完成了 - 这是什么?

1 个答案:

答案 0 :(得分:10)

你关闭了PrintWriter吗?从它的javadoc

  

与PrintStream类不同,如果启用了自动刷新,则只有在调用其中一个println()方法时才会执行,而不是每当输出换行符时。 println()方法使用平台自己的行分隔符概念而不是换行符。

如果您关闭PrintWriter(而不是FileWriter!),请在打印后尝试flush(),以强制执行此操作。