Package java.io

Class StringReader

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

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

    Fields inherited from class java.io.Reader

    lock
  • Constructor Summary

    Constructors
    Constructor Description
    StringReader​(String str)
    Construct a new StringReader with str as source.
  • Method Summary

    Modifier and Type Method 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[] buffer, int offset, int count)
    Reads up to count characters from the source string and stores them at offset in the character array buffer.
    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 charCount)
    Moves charCount characters in the source string.

    Methods inherited from class java.io.Reader

    read, read

    Methods inherited from class java.lang.Object

    clone, equals, finalize, 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 interface Closeable
      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(), reset()
    • 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[] buffer, int offset, int count) throws IOException
      Reads up to count characters from the source string and stores them at offset in the character array buffer. 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
      Throws:
      IndexOutOfBoundsException - if offset < 0 || count < 0 || offset + count > buffer.length.
      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:
      read(), read(char[], int, int)
    • 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:
      mark(int), markSupported()
    • skip

      public long skip​(long charCount) throws IOException
      Moves charCount 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:
      charCount - 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:
      mark(int), markSupported(), reset()