public class ConsoleOutputStream extends FilterOutputStream
System.out so that the console handling
 library (JLine or Java Readline) can treat an incomplete line (one without a newline) as a prompt
 string, and so know the true position of the cursor. It achieves this by keeping a copy of bytes
 that pass through from from upstream to the true System.out, until either a newline
 arrives, or a defined capacity (typically the console width) is reached. If client code requests
 the partial line as a prompt, that action also empties the buffer. In that case, the client
 (which is the console object) is responsible for making the prompt emerge on the real console.| Constructor and Description | 
|---|
| ConsoleOutputStream(OutputStream out,
                   int promptCapacity)Create a wrapper on an  OutputStreamthat holds a copy of the last incomplete
 line written to it (as bytes), in case it is needed as a console prompt. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | close() | 
| void | flush() | 
| void | write(int b)This write method steals a copy of each byte in a buffer while passing it on to the wrapped
 stream. | 
write, writepublic ConsoleOutputStream(OutputStream out, int promptCapacity)
OutputStream that holds a copy of the last incomplete
 line written to it (as bytes), in case it is needed as a console prompt.out - the stream wrapped (normally System.out)promptCapacity - maximum number of bytes to bufferpublic void write(int b)
           throws IOException
getPrompt(Charset).write in class FilterOutputStreamIOExceptionpublic void flush()
           throws IOException
flush in interface Flushableflush in class FilterOutputStreamIOExceptionpublic void close()
           throws IOException
close in interface Closeableclose in interface AutoCloseableclose in class FilterOutputStreamIOException