简体   繁体   中英

PrintWriter not printing out complete string

I have the following code

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

When I examine the txt however, the last text is NOT 'END', but part of a word in the string. It is "repa"

When I do this

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

The last bit of text I get is the number '49' - this is correct.

It appears that the PrintWriter is not fully writing out the string. However, when I do this

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

The 'original' text now actually finishes - what is this?

Do you close the PrintWriter ? From its javadoc

Unlike the PrintStream class, if automatic flushing is enabled it will be done only when one of the println() methods is invoked, rather than whenever a newline character happens to be output. The println() methods use the platform's own notion of line separator rather than the newline character.

If you do close the PrintWriter (and not the FileWriter!) try a flush() after printing, to force that.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM