Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.derby.iapi.services.io
Class LimitReader  view LimitReader download LimitReader.java

java.lang.Object
  extended byjava.io.Reader
      extended byorg.apache.derby.iapi.services.io.LimitReader
All Implemented Interfaces:
Limit

public class LimitReader
extends java.io.Reader
implements Limit

A Reader that provides methods to limit the range that can be read from the reader.


Field Summary
protected  boolean limitInPlace
           
private  java.io.Reader reader
           
protected  int remainingBytes
           
 
Fields inherited from class java.io.Reader
lock
 
Constructor Summary
LimitReader(java.io.Reader reader)
          Construct a LimitReader and call the clearLimit() method.
 
Method Summary
 int clearLimit()
          Clear any limit set by setLimit.
 void close()
          Closes the stream.
 int getLimit()
          return limit of the stream that can be read without throwing EOFException
 int read()
          Reads an char from the input stream and returns it as an int in the range of 0-65535.
 int read(char[] c, int off, int len)
          Read chars from a stream and stores them into a caller supplied buffer.
 void setLimit(int length)
          Set the limit of the stream that can be read.
 long skip(long count)
          Skips the specified number of chars in the stream.
 
Methods inherited from class java.io.Reader
mark, markSupported, read, ready, reset
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

remainingBytes

protected int remainingBytes

limitInPlace

protected boolean limitInPlace

reader

private java.io.Reader reader
Constructor Detail

LimitReader

public LimitReader(java.io.Reader reader)
Construct a LimitReader and call the clearLimit() method.

Method Detail

read

public int read()
         throws java.io.IOException
Description copied from class: java.io.Reader
Reads an char from the input stream and returns it as an int in the range of 0-65535. This method also will return -1 if the end of the stream has been reached.

This method will block until the char can be read.


read

public int read(char[] c,
                int off,
                int len)
         throws java.io.IOException
Description copied from class: java.io.Reader
Read chars from a stream and stores them into a caller supplied buffer. It starts storing the data at index offset into the buffer and attempts to read len chars. This method can return before reading the number of chars requested. The actual number of chars read is returned as an int. A -1 is returned to indicate the end of the stream.

This method will block until some data can be read.

This method operates by calling the single char read() method in a loop until the desired number of chars are read. The read loop stops short if the end of the stream is encountered or if an IOException is encountered on any read operation except the first. If the first attempt to read a chars fails, the IOException is allowed to propagate upward. And subsequent IOException is caught and treated identically to an end of stream condition. Subclasses can (and should if possible) override this method to provide a more efficient implementation.


skip

public long skip(long count)
          throws java.io.IOException
Description copied from class: java.io.Reader
Skips the specified number of chars in the stream. It returns the actual number of chars skipped, which may be less than the requested amount.

This method reads and discards chars into a 256 char array until the specified number of chars were skipped or until either the end of stream is reached or a read attempt returns a short count. Subclasses can override this method to provide a more efficient implementation where one exists.


close

public void close()
           throws java.io.IOException
Description copied from class: java.io.Reader
Closes the stream. Any futher attempts to read from the stream may generate an IOException.


setLimit

public void setLimit(int length)
Set the limit of the stream that can be read. After this call up to and including length bytes can be read from or skipped in the stream. Any attempt to read more than length bytes will result in an EOFException

Specified by:
setLimit in interface Limit

getLimit

public final int getLimit()
return limit of the stream that can be read without throwing EOFException


clearLimit

public int clearLimit()
Clear any limit set by setLimit. After this call no limit checking will be made on any read until a setLimit()) call is made.

Specified by:
clearLimit in interface Limit