PrintWriter not printing out complete string
Asked Answered
B

1

7

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?

Bayer answered 10/12, 2012 at 18:15 Comment(1)
Nobody? I have no clue what is going on hereBayer
L
16

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.

Lois answered 10/12, 2012 at 18:41 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.