PrintWriter不打印完整的字符串

Nig*_*der 2 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");
Run Code Online (Sandbox Code Playgroud)

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

当我这样做

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

我得到的最后一段文字是数字'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");
Run Code Online (Sandbox Code Playgroud)

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

Pyr*_*nja 11

你关闭了PrintWriter吗?从它的javadoc

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

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