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.FilterInputStreamjava.io.IOExceptionpublic 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.FilterInputStreamjava.io.IOExceptionjava.io.EOFExceptionpublic long skip(long n)
throws java.io.IOException
skip will not
result in reading a new line with getLine().skip in class java.io.FilterInputStreamjava.io.IOExceptionpublic int available()
throws java.io.IOException
available in class java.io.FilterInputStreamjava.io.IOExceptionpublic void mark(int readlimit)
mark in class java.io.FilterInputStreampublic void reset()
throws java.io.IOException
reset in class java.io.FilterInputStreamjava.io.IOExceptionpublic boolean markSupported()
markSupported in class java.io.FilterInputStream