PrintWriter未将完整字符串打印出来

6
我有以下代码
FileWriter F = new FileWriter("out.txt");
PrintWriter H = new PrintWriter(F);
H.print(split[split.length - 2]);
H.print("END");

当我检查这段文本时,最后的文字不是“END”,而是字符串中一个单词的一部分。它是“repa”。

当我执行以下操作时:

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");

'原始'文本现在实际上已经完成 - 这是什么意思?

没人吗?我不知道这里发生了什么。 - DreamsOfHummus
1个回答

15

你关闭了 PrintWriter 吗?根据它的 javadoc:

与 PrintStream 类不同,如果启用了自动刷新,则仅在调用 println() 方法之一时才进行,而不是每次输出换行符时都会发生。println() 方法使用平台自己的换行符而不是换行字符。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接