Class CharSequenceReader

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Serializable, java.lang.AutoCloseable, java.lang.Readable

    public class CharSequenceReader
    extends java.io.Reader
    implements java.io.Serializable
    Reader implementation that can read from String, StringBuffer, StringBuilder or CharBuffer.

    Note: Supports mark(int) and reset().

    Since:
    1.4
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      CharSequenceReader​(java.lang.CharSequence charSequence)
      Constructs a new instance with the specified character sequence.
      CharSequenceReader​(java.lang.CharSequence charSequence, int start)
      Constructs a new instance with a portion of the specified character sequence.
      CharSequenceReader​(java.lang.CharSequence charSequence, int start, int end)
      Constructs a new instance with a portion of the specified character sequence.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Close resets the file back to the start and removes any marked position.
      void mark​(int readAheadLimit)
      Mark the current position.
      boolean markSupported()
      Mark is supported (returns true).
      int read()
      Read a single character.
      int read​(char[] array, int offset, int length)
      Read the specified number of characters into the array.
      boolean ready()
      Tells whether this stream is ready to be read.
      void reset()
      Reset the reader to the last marked position (or the beginning if mark has not been called).
      long skip​(long n)
      Skip the specified number of characters.
      java.lang.String toString()
      Return a String representation of the underlying character sequence.
      • Methods inherited from class java.io.Reader

        nullReader, read, read, transferTo
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • CharSequenceReader

        public CharSequenceReader​(java.lang.CharSequence charSequence)
        Constructs a new instance with the specified character sequence.
        Parameters:
        charSequence - The character sequence, may be null
      • CharSequenceReader

        public CharSequenceReader​(java.lang.CharSequence charSequence,
                                  int start)
        Constructs a new instance with a portion of the specified character sequence.

        The start index is not strictly enforced to be within the bounds of the character sequence. This allows the character sequence to grow or shrink in size without risking any IndexOutOfBoundsException to be thrown. Instead, if the character sequence grows smaller than the start index, this instance will act as if all characters have been read.

        Parameters:
        charSequence - The character sequence, may be null
        start - The start index in the character sequence, inclusive
        Throws:
        java.lang.IllegalArgumentException - if the start index is negative
        Since:
        2.7
      • CharSequenceReader

        public CharSequenceReader​(java.lang.CharSequence charSequence,
                                  int start,
                                  int end)
        Constructs a new instance with a portion of the specified character sequence.

        The start and end indexes are not strictly enforced to be within the bounds of the character sequence. This allows the character sequence to grow or shrink in size without risking any IndexOutOfBoundsException to be thrown. Instead, if the character sequence grows smaller than the start index, this instance will act as if all characters have been read; if the character sequence grows smaller than the end, this instance will use the actual character sequence length.

        Parameters:
        charSequence - The character sequence, may be null
        start - The start index in the character sequence, inclusive
        end - The end index in the character sequence, exclusive
        Throws:
        java.lang.IllegalArgumentException - if the start index is negative, or if the end index is smaller than the start index
        Since:
        2.7
    • Method Detail

      • close

        public void close()
        Close resets the file back to the start and removes any marked position.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in class java.io.Reader
      • ready

        public boolean ready()
        Tells whether this stream is ready to be read.
        Overrides:
        ready in class java.io.Reader
        Returns:
        true if more characters from the character sequence are available, or false otherwise.
      • mark

        public void mark​(int readAheadLimit)
        Mark the current position.
        Overrides:
        mark in class java.io.Reader
        Parameters:
        readAheadLimit - ignored
      • markSupported

        public boolean markSupported()
        Mark is supported (returns true).
        Overrides:
        markSupported in class java.io.Reader
        Returns:
        true
      • read

        public int read()
        Read a single character.
        Overrides:
        read in class java.io.Reader
        Returns:
        the next character from the character sequence or -1 if the end has been reached.
      • read

        public int read​(char[] array,
                        int offset,
                        int length)
        Read the specified number of characters into the array.
        Specified by:
        read in class java.io.Reader
        Parameters:
        array - The array to store the characters in
        offset - The starting position in the array to store
        length - The maximum number of characters to read
        Returns:
        The number of characters read or -1 if there are no more
      • reset

        public void reset()
        Reset the reader to the last marked position (or the beginning if mark has not been called).
        Overrides:
        reset in class java.io.Reader
      • skip

        public long skip​(long n)
        Skip the specified number of characters.
        Overrides:
        skip in class java.io.Reader
        Parameters:
        n - The number of characters to skip
        Returns:
        The actual number of characters skipped
      • toString

        public java.lang.String toString()
        Return a String representation of the underlying character sequence.
        Overrides:
        toString in class java.lang.Object
        Returns:
        The contents of the character sequence