Class StringReader

java.lang.Object
java.io.Reader
java.io.StringReader
All Implemented Interfaces:
AutoCloseable

public class StringReader extends Reader
A specialized Reader that reads characters from a String in a sequential manner.
See Also:
  • Field Summary

    Fields inherited from class Reader

    lock
  • Constructor Summary

    Constructors
    Constructor
    Description
    Construct a new StringReader with str as source.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Closes this reader.
    void
    mark(int readLimit)
    Sets a mark position in this reader.
    boolean
    Indicates whether this reader supports the mark() and reset() methods.
    int
    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
    Indicates whether this reader is ready to be read without blocking.
    void
    Resets this reader's position to the last mark() location.
    long
    skip(long ns)
    Moves ns characters in the source string.

    Methods inherited from class Reader

    read

    Methods inherited from class Object

    clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 - 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.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in class Reader
    • 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.
      Overrides:
      mark in class Reader
      Parameters:
      readLimit - ignored for StringReader instances.
      Throws:
      IllegalArgumentException - if readLimit < 0.
      IOException - if this reader is closed.
      See Also:
    • markSupported

      public boolean markSupported()
      Indicates whether this reader supports the mark() and reset() methods. This implementation returns true.
      Overrides:
      markSupported in class Reader
      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.
      Overrides:
      read in class Reader
      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.
      Specified by:
      read in class Reader
      Parameters:
      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.
      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.
      Overrides:
      ready in class Reader
      Returns:
      always true.
      Throws:
      IOException - if this reader is closed.
      See Also:
    • 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.
      Overrides:
      reset in class Reader
      Throws:
      IOException - if this reader is closed.
      See Also:
    • 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.
      Overrides:
      skip in class Reader
      Parameters:
      ns - 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.
      See Also: