Class CharArrayReader

java.lang.Object
java.io.Reader
com.codename1.io.CharArrayReader
All Implemented Interfaces:
Closeable, AutoCloseable, Readable

public class CharArrayReader extends Reader

A specialized Reader for reading the contents of a char array.

See also
  • CharArrayWriter
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected char[]
    The buffer for characters.
    protected int
    The ending index of the buffer.
    protected int
    The current mark position.
    protected int
    The current buffer position.

    Fields inherited from class Reader

    lock
  • Constructor Summary

    Constructors
    Constructor
    Description
    CharArrayReader(char[] buf)
    Constructs a CharArrayReader on the char array buf.
    CharArrayReader(char[] buf, int offset, int length)
    Constructs a CharArrayReader on the char array buf.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    This method closes this CharArrayReader.
    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 this reader and returns it as an integer with the two higher-order bytes set to 0.
    int
    read(char[] buffer, int offset, int len)
    Reads at most count characters from this CharArrayReader 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 n)
    Skips count number of characters in this reader.

    Methods inherited from class Reader

    read, read

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • buf

      protected char[] buf
      The buffer for characters.
    • pos

      protected int pos
      The current buffer position.
    • markedPos

      protected int markedPos
      The current mark position.
    • count

      protected int count
      The ending index of the buffer.
  • Constructor Details

    • CharArrayReader

      public CharArrayReader(char[] buf)

      Constructs a CharArrayReader on the char array buf. The size of the reader is set to the length of the buffer and the object to read from is set to buf.

      Parameters
      • buf: the char array from which to read.
    • CharArrayReader

      public CharArrayReader(char[] buf, int offset, int length)

      Constructs a CharArrayReader on the char array buf. The size of the reader is set to length and the start position from which to read the buffer is set to offset.

      Parameters
      • buf: the char array from which to read.

      • offset: the index of the first character in buf to read.

      • length: the number of characters that can be read from buf.

      Throws
      • IllegalArgumentException: @throws IllegalArgumentException if offset < 0 or length < 0, or if offset is greater than the size of buf .
  • Method Details

    • close

      public void close()
      This method closes this CharArrayReader. Once it is closed, you can no longer read from it. 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 CharArrayReaders. Calling reset() will reposition the reader back to the marked position provided the mark has not been invalidated.

      Parameters
      • readLimit: ignored for CharArrayReaders.
      Throws
      • IOException: if this reader is closed.
      Overrides:
      mark in class Reader
      Throws:
      IOException
    • markSupported

      public boolean markSupported()

      Indicates whether this reader supports the mark() and reset() methods.

      Returns

      true for CharArrayReader.

      See also
      • #mark(int)

      • #reset()

      Overrides:
      markSupported in class Reader
    • read

      public int read() throws IOException

      Reads a single character from this reader and returns it as an integer with the two higher-order bytes set to 0. Returns -1 if no more characters are available from this reader.

      Returns
      Overrides:
      read in class Reader
      Returns:

      the character read as an int or -1 if the end of the reader has been reached.

      Throws
      • IOException: if this reader is closed.
      Throws:
      IOException
    • read

      public int read(char[] buffer, int offset, int len) throws IOException

      Reads at most count characters from this CharArrayReader and stores them at offset in the character array buf. Returns the number of characters actually read or -1 if the end of reader was encountered.

      Parameters
      • buffer: the character array to store the characters read.

      • offset: @param offset the initial position in buffer to store the characters read from this reader.

      • len: the maximum number of characters to read.

      Returns
      Specified by:
      read in class Reader
      Returns:

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

      Throws
      • IndexOutOfBoundsException: @throws IndexOutOfBoundsException if offset < 0 or len < 0, or if offset + len is bigger than the size of buffer.

      • IOException: if this reader is closed.

      Throws:
      IOException
    • ready

      public boolean ready() throws IOException

      Indicates whether this reader is ready to be read without blocking. Returns true if the next read will not block. Returns false if this reader may or may not block when read is called. The implementation in CharArrayReader always returns true even when it has been closed.

      Returns
      Overrides:
      ready in class Reader
      Returns:

      true if this reader will not block when read is called, false if unknown or blocking will occur.

      Throws
      • IOException: if this reader is closed.
      Throws:
      IOException
    • 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 string.

      Throws
      • IOException: if this reader is closed.
      Overrides:
      reset in class Reader
      Throws:
      IOException
    • skip

      public long skip(long n) throws IOException

      Skips count number of characters in this reader. Subsequent read()s will not return these characters unless reset() is used. This method does nothing and returns 0 if n is negative.

      Parameters
      • n: the number of characters to skip.
      Returns

      the number of characters actually skipped.

      Throws
      • IOException: if this reader is closed.
      Overrides:
      skip in class Reader
      Throws:
      IOException