A character stream whose source is a string.
Method from java.io.StringReader Detail: |
public void close() {
str = null;
}
Closes the stream and releases any system resources associated with
it. Once the stream has been closed, further read(),
ready(), mark(), or reset() invocations will throw an IOException.
Closing a previously closed stream has no effect. |
public void mark(int readAheadLimit) throws IOException {
if (readAheadLimit < 0){
throw new IllegalArgumentException("Read-ahead limit < 0");
}
synchronized (lock) {
ensureOpen();
mark = next;
}
}
Marks the present position in the stream. Subsequent calls to reset()
will reposition the stream to this point. |
public boolean markSupported() {
return true;
}
Tells whether this stream supports the mark() operation, which it does. |
public int read() throws IOException {
synchronized (lock) {
ensureOpen();
if (next >= length)
return -1;
return str.charAt(next++);
}
}
Reads a single character. |
public int read(char[] cbuf,
int off,
int len) throws IOException {
synchronized (lock) {
ensureOpen();
if ((off < 0) || (off > cbuf.length) || (len < 0) ||
((off + len) > cbuf.length) || ((off + len) < 0)) {
throw new IndexOutOfBoundsException();
} else if (len == 0) {
return 0;
}
if (next >= length)
return -1;
int n = Math.min(length - next, len);
str.getChars(next, next + n, cbuf, off);
next += n;
return n;
}
}
Reads characters into a portion of an array. |
public boolean ready() throws IOException {
synchronized (lock) {
ensureOpen();
return true;
}
}
Tells whether this stream is ready to be read. |
public void reset() throws IOException {
synchronized (lock) {
ensureOpen();
next = mark;
}
}
Resets the stream to the most recent mark, or to the beginning of the
string if it has never been marked. |
public long skip(long ns) throws IOException {
synchronized (lock) {
ensureOpen();
if (next >= length)
return 0;
// Bound skip by beginning and end of the source
long n = Math.min(length - next, ns);
n = Math.max(-next, n);
next += n;
return n;
}
}
Skips the specified number of characters in the stream. Returns
the number of characters that were skipped.
The ns parameter may be negative, even though the
skip method of the Reader superclass throws
an exception in this case. Negative values of ns cause the
stream to skip backwards. Negative return values indicate a skip
backwards. It is not possible to skip backwards past the beginning of
the string.
If the entire string has been read or skipped, then this method has
no effect and always returns 0. |