public abstract class ConsoleInputStream
extends java.io.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.
|
public int read() throws java.io.IOException
read
in class java.io.FilterInputStream
java.io.IOException
public int read(byte[] b, int off, int len) throws java.io.IOException, java.io.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 java.io.FilterInputStream
java.io.IOException
java.io.EOFException
public long skip(long n) throws java.io.IOException
skip
will not
result in reading a new line with getLine()
.skip
in class java.io.FilterInputStream
java.io.IOException
public int available() throws java.io.IOException
available
in class java.io.FilterInputStream
java.io.IOException
public void mark(int readlimit)
mark
in class java.io.FilterInputStream
public void reset() throws java.io.IOException
reset
in class java.io.FilterInputStream
java.io.IOException
public boolean markSupported()
markSupported
in class java.io.FilterInputStream