public class StringReader

  1. Object
  2. Reader
  3. StringReader

ImplementsAutoCloseable

A specialized Reader that reads characters from a String in a sequential manner.

See also

Constructors

public StringReader(String str)Construct a new StringReader with str as source.

Methods

public void close()Closes this reader.
public void mark(int readLimit) throws IOExceptionSets a mark position in this reader.
public boolean markSupported()Indicates whether this reader supports the mark() and reset() methods.
public int read() throws IOExceptionReads a single character from the source string and returns it as an integer with the two higher-order bytes set to 0. Returns -1 if the end of the source string has been reached.
public int read(char[] buf, int offset, int len) throws IOExceptionReads at most len characters from the source string and stores them at offset in the character array buf.
public boolean ready() throws IOExceptionIndicates whether this reader is ready to be read without blocking.
public void reset() throws IOExceptionResets this reader’s position to the last mark() location.
public long skip(long ns) throws IOExceptionMoves ns characters in the source string.

Inherited fields

Inherited methods

Constructor details

StringReader

public StringReader(String str)
Construct a new 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.

Parameters

str String
the source string for this reader.

Method details

close

public void close()
Closes this reader. Once it is closed, read operations on this reader will throw an IOException. Only the first invocation of this method has any effect.

mark

public void mark(int readLimit) throws IOException
Sets a mark position in this reader. The parameter readLimit is ignored for this class. Calling reset() will reposition the reader back to the marked position.

Parameters

readLimit int
ignored for StringReader instances.

Throws

IllegalArgumentException
if readLimit < 0.
IOException
if this reader is closed.

markSupported

public boolean markSupported()
Indicates whether this reader supports the mark() and reset() methods. This implementation returns true.

Returns

always true.

read

public int read() throws IOException
Reads a single character from the source string and returns it as an integer with the two higher-order bytes set to 0. Returns -1 if the end of the source string has been reached.

Returns

the character read or -1 if the end of the source string has been reached.

Throws

IOException
if this reader is closed.

read

public int read(char[] buf, int offset, int len) throws IOException
Reads at most 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.

Parameters

buf char[]
the character array to store the characters read.
offset int
the initial position in buffer to store the characters read from this reader.
len int
the maximum number of characters to read.

Returns

the number of characters read or -1 if the end of the reader has been reached.

Throws

IndexOutOfBoundsException
if offset < 0 or len < 0, or if offset + len is greater than the size of buf.
IOException
if this reader is closed.

ready

public boolean ready() throws IOException
Indicates whether this reader is ready to be read without blocking. This implementation always returns true.

Returns

always true.

Throws

IOException
if this reader is closed.

reset

public void reset() throws IOException
Resets this reader’s position to the last 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.

Throws

IOException
if this reader is closed.

skip

public long skip(long ns) throws IOException
Moves 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.

Parameters

ns long
the maximum number of characters to skip. Positive values skip forward; negative values skip backward.

Returns

the number of characters actually skipped. This is bounded below by the number of characters already read and above by the number of characters remaining: -(num chars already read) <= distance skipped <= num chars remaining.

Throws

IOException
if this reader is closed.