public abstract class

FilterReader

extends Reader
java.lang.Object
   ↳ java.io.Reader
     ↳ java.io.FilterReader
Known Direct Subclasses

Class Overview

Wraps an existing Reader and performs some transformation on the input data while it is being read. Transformations can be anything from a simple byte-wise filtering input data to an on-the-fly compression or decompression of the underlying reader. Readers that wrap another reader and provide some additional functionality on top of it usually inherit from this class.

See Also

Summary

Fields
protected Reader in The target Reader which is being filtered.
[Expand]
Inherited Fields
From class java.io.Reader
Protected Constructors
FilterReader(Reader in)
Constructs a new FilterReader on the Reader in.
Public Methods
void close()
Closes this reader.
synchronized void mark(int readlimit)
Sets a mark position in this reader.
boolean markSupported()
Indicates whether this reader supports mark() and reset().
int read()
Reads a single character from the filtered reader and returns it as an integer with the two higher-order bytes set to 0.
int read(char[] buffer, int offset, int count)
Reads at most count characters from the filtered reader and stores them in the byte array buffer starting at offset.
boolean ready()
Indicates whether this reader is ready to be read without blocking.
void reset()
Resets this reader's position to the last marked location.
long skip(long count)
Skips count characters in this reader.
[Expand]
Inherited Methods
From class java.io.Reader
From class java.lang.Object
From interface java.io.Closeable
From interface java.lang.Readable

Fields

protected Reader in

Since: API Level 1

The target Reader which is being filtered.

Protected Constructors

protected FilterReader (Reader in)

Since: API Level 1

Constructs a new FilterReader on the Reader in.

Parameters
in The non-null Reader to filter reads on.

Public Methods

public void close ()

Since: API Level 1

Closes this reader. This implementation closes the filtered reader.

Throws
IOException if an error occurs while closing this reader.

public synchronized void mark (int readlimit)

Since: API Level 1

Sets a mark position in this reader. The parameter readlimit indicates how many bytes can be read before the mark is invalidated. Sending reset() will reposition this reader back to the marked position, provided that readlimit has not been surpassed.

This implementation sets a mark in the filtered reader.

Parameters
readlimit the number of bytes that can be read from this reader before the mark is invalidated.
Throws
IOException if an error occurs while marking this reader.

public boolean markSupported ()

Since: API Level 1

Indicates whether this reader supports mark() and reset(). This implementation returns whether the filtered reader supports marking.

Returns
  • true if mark() and reset() are supported by the filtered reader, false otherwise.

public int read ()

Since: API Level 1

Reads a single character from the filtered reader and returns it as an integer with the two higher-order bytes set to 0. Returns -1 if the end of the filtered reader has been reached.

Returns
  • The character read or -1 if the end of the filtered reader has been reached.
Throws
IOException if an error occurs while reading from this reader.

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

Since: API Level 1

Reads at most count characters from the filtered reader and stores them in the byte array buffer starting at offset. Returns the number of characters actually read or -1 if no characters were read and the end of the filtered reader was encountered.

Parameters
buffer the char array in which to store the characters read.
offset the initial position in buffer to store the characters read from this reader.
count the maximum number of characters to store in buffer.
Returns
  • the number of characters actually read or -1 if the end of the filtered reader has been reached while reading.
Throws
IOException if an error occurs while reading from this reader.

public boolean ready ()

Since: API Level 1

Indicates whether this reader is ready to be read without blocking. If the result is true, the next read() will not block. If the result is false, this reader may or may not block when read() is sent.

Returns
  • true if this reader will not block when read() is called, false if unknown or blocking will occur.
Throws
IOException if the reader is closed or some other I/O error occurs.

public void reset ()

Since: API Level 1

Resets this reader's position to the last marked location. Invocations of read() and skip() will occur from this new location. If this reader was not marked, the behavior depends on the implementation of reset() in the Reader subclass that is filtered by this reader. The default behavior for Reader is to throw an IOException.

Throws
IOException if a problem occurred or the filtered reader does not support mark() and reset().

public long skip (long count)

Since: API Level 1

Skips count characters in this reader. Subsequent read()'s will not return these characters unless reset() is used. The default implementation is to skip characters in the filtered reader.

Parameters
count the maximum number of characters to skip.
Returns
  • the number of characters actually skipped.
Throws
IOException if the filtered reader is closed or some other I/O error occurs.