public class CharArrayReader

  1. Object
  2. Reader
  3. CharArrayReader

ImplementsAutoCloseable

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

See also

  • CharArrayWriter

Fields

protected char[] bufThe buffer for characters.
protected int posThe current buffer position.
protected int markedPosThe current mark position.
protected int countThe ending index of the buffer.

Constructors

public CharArrayReader(char[] buf)Constructs a CharArrayReader on the char array buf.
public CharArrayReader(char[] buf, int offset, int length)Constructs a CharArrayReader on the char array buf.

Methods

public void close()This method closes this CharArrayReader.
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 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.
public int read(char[] buffer, int offset, int len) throws IOExceptionReads at most count characters from this CharArrayReader 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 n) throws IOExceptionSkips count number of characters in this reader.

Inherited fields

Inherited methods

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 char[]
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 char[]
the char array from which to read.
offset int
the index of the first character in buf to read.
length int
the number of characters that can be read from buf.

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.

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 int
ignored for CharArrayReaders.

Throws

IOException
if this reader is closed.

markSupported

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

Returns

true for CharArrayReader.

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

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

Throws

IOException
if this reader is closed.

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 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

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 bigger than the size of buffer.
IOException
if this reader is closed.

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

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.

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.

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 long
the number of characters to skip.

Returns

the number of characters actually skipped.

Throws

IOException
if this reader is closed.