Android APIs
public abstract class

Reader

extends Object
implements Readable Closeable
java.lang.Object
   ↳ java.io.Reader
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

The base class for all readers. A reader is a means of reading data from a source in a character-wise manner. Some readers also support marking a position in the input and returning to this position later.

This abstract class does not provide a fully working implementation, so it needs to be subclassed, and at least the read(char[], int, int) and close() methods needs to be overridden. Overriding some of the non-abstract methods is also often advised, since it might result in higher efficiency.

Many specialized readers for purposes like reading from a file already exist in this package.

See also:

Summary

Fields
protected Object lock The object used to synchronize access to the reader.
Protected Constructors
Reader()
Constructs a new Reader with this as the object used to synchronize critical sections.
Reader(Object lock)
Constructs a new Reader with lock used to synchronize critical sections.
Public Methods
abstract 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 this reader and returns it as an integer with the two higher-order bytes set to 0.
abstract int read(char[] buffer, int offset, int count)
Reads up to count characters from this reader and stores them at offset in the character array buffer.
int read(CharBuffer target)
Reads characters and puts them into the target character buffer.
int read(char[] buffer)
Reads characters from this reader and stores them in the character array buffer starting at offset 0.
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)
Skips charCount characters in this reader.
[Expand]
Inherited Methods
From class java.lang.Object
From interface java.lang.Readable
From interface java.io.Closeable
From interface java.lang.AutoCloseable

Fields

protected Object lock

Added in API level 1

The object used to synchronize access to the reader.

Protected Constructors

protected Reader ()

Added in API level 1

Constructs a new Reader with this as the object used to synchronize critical sections.

protected Reader (Object lock)

Added in API level 1

Constructs a new Reader with lock used to synchronize critical sections.

Parameters
lock the Object used to synchronize critical sections.
Throws
NullPointerException if lock is null.

Public Methods

public abstract void close ()

Added in API level 1

Closes this reader. Implementations of this method should free any resources associated with the reader.

Throws
IOException if an error occurs while closing this reader.

public void mark (int readLimit)

Added in API level 1

Sets a mark position in this reader. The parameter readLimit indicates how many characters can be read before the mark is invalidated. Calling reset() will reposition the reader back to the marked position if readLimit has not been surpassed.

This default implementation simply throws an IOException; subclasses must provide their own implementation.

Parameters
readLimit the number of characters that can be read before the mark is invalidated.
Throws
IllegalArgumentException if readLimit < 0.
IOException if an error occurs while setting a mark in this reader.

public boolean markSupported ()

Added in API level 1

Indicates whether this reader supports the mark() and reset() methods. This default implementation returns false.

Returns
boolean always false.

public int read ()

Added in API level 1

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 the end of the reader has been reached.

Returns
int the character read or -1 if the end of the reader has been reached.
Throws
IOException if this reader is closed or some other I/O error occurs.

public abstract int read (char[] buffer, int offset, int count)

Added in API level 1

Reads up to count characters from this reader and stores them at offset in the character array buffer. Returns the number of characters actually read or -1 if the end of the reader has been reached.

Parameters
buffer
offset
count
Returns
int
Throws
IOException if this reader is closed or some other I/O error occurs.

public int read (CharBuffer target)

Added in API level 1

Reads characters and puts them into the target character buffer.

Parameters
target the destination character buffer.
Returns
int the number of characters put into target or -1 if the end of this reader has been reached before a character has been read.
Throws
IOException if any I/O error occurs while reading from this reader.
NullPointerException if target is null.
ReadOnlyBufferException if target is read-only.

public int read (char[] buffer)

Added in API level 1

Reads characters from this reader and stores them in the character array buffer starting at offset 0. Returns the number of characters actually read or -1 if the end of the reader has been reached.

Parameters
buffer
Returns
int
Throws
IOException if this reader is closed or some other I/O error occurs.

public boolean ready ()

Added in API level 1

Indicates whether this reader is ready to be read without blocking. Returns true if this reader will not block when read is called, false if unknown or blocking will occur. This default implementation always returns false.

Returns
boolean always false.
Throws
IOException if this reader is closed or some other I/O error occurs.

public void reset ()

Added in API level 1

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, the behavior of reset() is implementation specific. This default implementation throws an IOException.

Throws
IOException always thrown in this default implementation.

public long skip (long charCount)

Added in API level 1

Skips charCount characters in this reader. Subsequent calls of read methods will not return these characters unless reset is used. This method may perform multiple reads to read charCount characters.

Parameters
charCount
Returns
long the number of characters actually skipped.
Throws
IllegalArgumentException if charCount < 0.
IOException if this reader is closed or some other I/O error occurs.