Package org.jline.utils
Class NonBlockingInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.jline.utils.NonBlockingInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
- Direct Known Subclasses:
NonBlockingInputStreamImpl
,NonBlockingPumpInputStream
public abstract class NonBlockingInputStream extends java.io.InputStream
Non blocking input stream
-
-
Field Summary
Fields Modifier and Type Field Description static int
EOF
static int
READ_EXPIRED
-
Constructor Summary
Constructors Constructor Description NonBlockingInputStream()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description int
peek(long timeout)
Peeks to see if there is a byte waiting in the input stream without actually consuming the byte.int
read()
Reads the next byte of data from the input stream.int
read(byte[] b, int off, int len)
int
read(long timeout)
Attempts to read a character from the input stream for a specific period of time.abstract int
read(long timeout, boolean isPeek)
int
readBuffered(byte[] b)
int
readBuffered(byte[] b, int off, int len, long timeout)
int
readBuffered(byte[] b, long timeout)
void
shutdown()
Shuts down the thread that is handling blocking I/O if any.
-
-
-
Field Detail
-
EOF
public static final int EOF
- See Also:
- Constant Field Values
-
READ_EXPIRED
public static final int READ_EXPIRED
- See Also:
- Constant Field Values
-
-
Method Detail
-
read
public int read() throws java.io.IOException
Reads the next byte of data from the input stream. The value byte is returned as anint
in the range0
to255
. If no byte is available because the end of the stream has been reached, the value-1
is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.- Specified by:
read
in classjava.io.InputStream
- Returns:
- the next byte of data, or
-1
if the end of the stream is reached. - Throws:
java.io.IOException
- if an I/O error occurs.
-
peek
public int peek(long timeout) throws java.io.IOException
Peeks to see if there is a byte waiting in the input stream without actually consuming the byte.- Parameters:
timeout
- The amount of time to wait, 0 == forever- Returns:
- -1 on eof, -2 if the timeout expired with no available input or the character that was read (without consuming it).
- Throws:
java.io.IOException
- if an I/O error occurs.
-
read
public int read(long timeout) throws java.io.IOException
Attempts to read a character from the input stream for a specific period of time.- Parameters:
timeout
- The amount of time to wait for the character- Returns:
- The character read, -1 if EOF is reached, or -2 if the read timed out.
- Throws:
java.io.IOException
- if an I/O error occurs.
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
readBuffered
public int readBuffered(byte[] b) throws java.io.IOException
- Throws:
java.io.IOException
-
readBuffered
public int readBuffered(byte[] b, long timeout) throws java.io.IOException
- Throws:
java.io.IOException
-
readBuffered
public int readBuffered(byte[] b, int off, int len, long timeout) throws java.io.IOException
- Throws:
java.io.IOException
-
shutdown
public void shutdown()
Shuts down the thread that is handling blocking I/O if any. Note that if the thread is currently blocked waiting for I/O it may not actually shut down until the I/O is received.
-
read
public abstract int read(long timeout, boolean isPeek) throws java.io.IOException
- Throws:
java.io.IOException
-
-