简体   繁体   中英

Is System.out buffered or unbuffered?

Is System.out buffered or unbuffered?

I read this is an object of InputStream and PrinterStream is the type of object referenced by System.out .

And they Both are Unbuffered so Why println() flushes the unbuffered...is it possible to flush unbuffered and I have read they are written immediately.

System.out is the "standard" output. On most operating systems that terminal io is buffered, and paging is supported.

From the Javadoc,

The "standard" output stream. This stream is already open and ready to accept output data. Typically this stream corresponds to display output or another output destination specified by the host environment or user.

From http://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html :

Optionally, a PrintStream can be created so as to flush automatically; this means that the flush method is automatically invoked after a byte array is written, one of the println methods is invoked, or a newline character or byte ('\\n') is written.

System.out.println prints the argument passed, into the System.out which is generally stdout.

System – is a final class and cannot be inherited. As per javadoc, “…Among the facilities provided by the System class are standard input, standard output, and error output streams; access to externally defined properties and environment variables; a means of loading files and libraries; and a utility method for quickly copying a portion of an array…”
out – is a static member field of System class and is of type PrintStream. Its access specifiers are public final. This gets instantiated during startup and gets mapped with standard output console of the host. This stream is open by itself immediately after its instantiation and ready to accept data.
println – println prints the argument passed to the standard console and a newline. There are multiple println methods with different arguments (overloading). Every println makes a call to print method and adds a newline. print calls write() and the story goes on like 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