我有以下代码
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");
“原始”文本现在实际上已经完成了 - 这是什么?
答案 0 :(得分:10)
你关闭了PrintWriter
吗?从它的javadoc
与PrintStream类不同,如果启用了自动刷新,则只有在调用其中一个println()方法时才会执行,而不是每当输出换行符时。 println()方法使用平台自己的行分隔符概念而不是换行符。
如果您关闭PrintWriter
(而不是FileWriter!),请在打印后尝试flush()
,以强制执行此操作。