public class StringReader extends Reader
Reader
that reads characters from a String
in
a sequential manner.StringWriter
Constructor and Description |
---|
StringReader(String str)
Construct a new
StringReader with str as source. |
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes this reader.
|
void |
mark(int readLimit)
Sets a mark position in this reader.
|
boolean |
markSupported()
Indicates whether this reader supports the
mark() and reset() methods. |
int |
read()
Reads a single character from the source string and returns it as an
integer with the two higher-order bytes set to 0.
|
int |
read(char[] buf,
int offset,
int len)
Reads at most
len characters from the source string and stores
them at offset in the character array buf . |
boolean |
ready()
Indicates whether this reader is ready to be read without blocking.
|
void |
reset()
Resets this reader's position to the last
mark() location. |
long |
skip(long ns)
Moves
ns characters in the source string. |
public StringReader(String str)
StringReader
with str
as source. The size
of the reader is set to the length()
of the string and the Object
to synchronize access through is set to str
.str
- the source string for this reader.public void close()
IOException
. Only the first invocation of this
method has any effect.close
in interface AutoCloseable
close
in class Reader
public void mark(int readLimit) throws IOException
readLimit
is
ignored for this class. Calling reset()
will reposition the
reader back to the marked position.mark
in class Reader
readLimit
- ignored for StringReader
instances.IllegalArgumentException
- if readLimit < 0
.IOException
- if this reader is closed.markSupported()
,
reset()
public boolean markSupported()
mark()
and reset()
methods. This implementation returns true
.markSupported
in class Reader
true
.public int read() throws IOException
read
in class Reader
IOException
- if this reader is closed.public int read(char[] buf, int offset, int len) throws IOException
len
characters from the source string and stores
them at offset
in the character array buf
. Returns the
number of characters actually read or -1 if the end of the source string
has been reached.read
in class Reader
buf
- the character array to store the characters read.offset
- the initial position in buffer
to store the characters
read from this reader.len
- the maximum number of characters to read.IndexOutOfBoundsException
- if offset < 0
or len < 0
, or if
offset + len
is greater than the size of buf
.IOException
- if this reader is closed.public boolean ready() throws IOException
true
.ready
in class Reader
true
.IOException
- if this reader is closed.read()
,
read(char[], int, int)
public void reset() throws IOException
mark()
location.
Invocations of read()
and skip()
will occur from this new
location. If this reader has not been marked, it is reset to the
beginning of the source string.reset
in class Reader
IOException
- if this reader is closed.mark(int)
,
markSupported()
public long skip(long ns) throws IOException
ns
characters in the source string. Unlike the overridden method
, this method may skip negative skip
distances: this rewinds the input so that characters may be read again.
When the end of the source string has been reached, the input cannot be
rewound.skip
in class Reader
ns
- the maximum number of characters to skip. Positive values skip
forward; negative values skip backward.-(num chars already
read) <= distance skipped <= num chars remaining
.IOException
- if this reader is closed.mark(int)
,
markSupported()
,
reset()