public abstract class ConsoleInputStream extends FilterInputStream
System.in for use with console libraries that
provide a line-oriented input mechanism. The console libraries provide a method to get the next
line from the console as a String. Particular sub-classes should wrap this character-oriented
method in a definition of getLine().
The libraries JLine and Java Readline have both been used to give Jython line-recall, editing and
a line history preserved between sessions. Both deal with the console encoding internally, and
interact with the user in terms of a buffer of characters. Our need in Jython is to access a
byte-stream encoding the characters, with line-endings, since it is the text layer of the Python
io stack, whether we are using the io module or file built-in, that
should deal with encoding.
| Modifier and Type | Class and Description |
|---|---|
static class |
ConsoleInputStream.EOLPolicy
Enumeration used to specify whether an end-of-line should be added or replaced at the end of
each line read.
|
| Modifier and Type | Method and Description |
|---|---|
int |
available()
The number of bytes left unread in the current encoded line.
|
void |
mark(int readlimit)
Mark is not supported.
|
boolean |
markSupported()
Mark is not supported.
|
int |
read()
Read the next byte of data from the buffered input line.
|
int |
read(byte[] b,
int off,
int len)
Reads up to len bytes of data from this input stream into an array of bytes.
|
void |
reset()
Mark is not supported.
|
long |
skip(long n)
Skip forward n bytes within the current encoded line.
|
close, readpublic int read()
throws IOException
read in class FilterInputStreamIOExceptionpublic int read(byte[] b,
int off,
int len)
throws IOException,
EOFException
getLine() at most once to get a line of
characters from the console, and encodes them as bytes to be read
back from the stream.read in class FilterInputStreamIOExceptionEOFExceptionpublic long skip(long n)
throws IOException
skip will not
result in reading a new line with getLine().skip in class FilterInputStreamIOExceptionpublic int available()
throws IOException
available in class FilterInputStreamIOExceptionpublic void mark(int readlimit)
mark in class FilterInputStreampublic void reset()
throws IOException
reset in class FilterInputStreamIOExceptionpublic boolean markSupported()
markSupported in class FilterInputStream