Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use flush() for PrintWriter

Tags:

java

java-io

I have some codes like this:

PrintWriter pw = new PrintWriter(new BufferedReader(....));
for(int i=0; i<10; i++) {
    pw.println("a");
    pw.flush();// flush each time when println()?
}
pw.close();

Is the flush() in each 'for' statement necessarily? I heard that flush() would auto invoke when invoke close() . If I write code like this:

PrintWriter pw = new PrintWriter(new BufferedReader(....), true);

and I wouldn't write pw.flush() anymore? Thanks.

like image 811
janekey Avatar asked Mar 29 '12 14:03

janekey


People also ask

What does flush do in PrintWriter?

The flush() method of PrintWriter Class in Java is used to flush the stream. By flushing the stream, it means to clear the stream of any element that may be or maybe not inside the stream. It neither accepts any parameter nor returns any value.

What does flush () do in Java?

flush() method flushes the stream. If the stream has saved any characters from the various write() methods in a buffer, write them immediately to their intended destination. Then, if that destination is another character or byte stream, flush it.

Does PrintWriter flush on close?

PrintWriter 's close() method does not call flush() .

How do you flush data in Java?

Java OutputStream flush() MethodThe flush() method of OutputStream class is used to flush the content of the buffer to the output stream. A buffer is a portion in memory that is used to store a stream of data(characters). That data sometimes will only get sent to an output device, when the buffer is full.


1 Answers

flush() is probably not required in your example.

What it does is ensure that anything written to the writer prior to the call to flush() is written to the underlying stream, rather than sit in some internal buffer.

The method comes in handy in several types of circumstances:

  1. If another process (or thread) needs to examine the file while it's being written to, and it's important that the other process sees all the recent writes.

  2. If the writing process might crash, and it's important that no writes to the file get lost.

  3. If you're writing to the console, and need to make sure that every message is shown as soon as it's written.

like image 108
NPE Avatar answered Oct 17 '22 13:10

NPE