Build 1.0_r1(from source)

java.io
Class BufferedInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.FilterInputStream
          extended by java.io.BufferedInputStream
All Implemented Interfaces:
Closeable

public class BufferedInputStream
extends FilterInputStream

BufferedInputStream is a class which takes an input stream and buffers the input. In this way, costly interaction with the original input stream can be minimized by reading buffered amounts of data infrequently. The drawback is that extra space is required to hold the buffer and that copying takes place when reading that buffer.

See Also:
BufferedOutputStream

Field Summary
protected  byte[] buf
          The buffer containing the current bytes read from the target InputStream.
protected  int count
          The total number of bytes inside the byte array buf.
protected  int marklimit
          The current limit, which when passed, invalidates the current mark.
protected  int markpos
          The currently marked position.
protected  int pos
          The current position within the byte array buf.
 
Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
BufferedInputStream(InputStream in)
          Constructs a new BufferedInputStream on the InputStream in.
BufferedInputStream(InputStream in, int size)
          Constructs a new BufferedInputStream on the InputStream in.
 
Method Summary
 int available()
          Returns an int representing the number of bytes that are available before this BufferedInputStream will block.
 void close()
          Close this BufferedInputStream.
 void mark(int readlimit)
          Set a Mark position in this BufferedInputStream.
 boolean markSupported()
          Returns a boolean indicating whether or not this BufferedInputStream supports mark() and reset().
 int read()
          Reads a single byte from this BufferedInputStream and returns the result as an int.
 int read(byte[] buffer, int offset, int length)
          Reads at most length bytes from this BufferedInputStream and stores them in byte array buffer starting at offset offset.
 void reset()
          Reset this BufferedInputStream to the last marked location.
 long skip(long amount)
          Skips amount number of bytes in this BufferedInputStream.
 
Methods inherited from class java.io.FilterInputStream
read
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

buf

protected volatile byte[] buf
The buffer containing the current bytes read from the target InputStream.


count

protected int count
The total number of bytes inside the byte array buf.


marklimit

protected int marklimit
The current limit, which when passed, invalidates the current mark.


markpos

protected int markpos
The currently marked position. -1 indicates no mark has been set or the mark has been invalidated.


pos

protected int pos
The current position within the byte array buf.

Constructor Detail

BufferedInputStream

public BufferedInputStream(InputStream in)
Constructs a new BufferedInputStream on the InputStream in. The default buffer size (8Kb) is allocated and all reads can now be filtered through this stream.

Parameters:
in - the InputStream to buffer reads on.

BufferedInputStream

public BufferedInputStream(InputStream in,
                           int size)
Constructs a new BufferedInputStream on the InputStream in. The buffer size is specified by the parameter size and all reads can now be filtered through this BufferedInputStream.

Parameters:
in - the InputStream to buffer reads on.
size - the size of buffer to allocate.
Method Detail

available

public int available()
              throws IOException
Returns an int representing the number of bytes that are available before this BufferedInputStream will block. This method returns the number of bytes available in the buffer plus those available in the target stream.

Overrides:
available in class FilterInputStream
Returns:
the number of bytes available before blocking.
Throws:
IOException - If an error occurs in this stream.

close

public void close()
           throws IOException
Close this BufferedInputStream. This implementation closes the target stream and releases any resources associated with it.

Specified by:
close in interface Closeable
Overrides:
close in class FilterInputStream
Throws:
IOException - If an error occurs attempting to close this stream.

mark

public void mark(int readlimit)
Set a Mark position in this BufferedInputStream. The parameter readLimit indicates how many bytes can be read before a mark is invalidated. Sending reset() will reposition the Stream back to the marked position provided readLimit has not been surpassed. The underlying buffer may be increased in size to allow readlimit number of bytes to be supported.

Overrides:
mark in class FilterInputStream
Parameters:
readlimit - the number of bytes to be able to read before invalidating the mark.

markSupported

public boolean markSupported()
Returns a boolean indicating whether or not this BufferedInputStream supports mark() and reset(). This implementation returns true.

Overrides:
markSupported in class FilterInputStream
Returns:
true for BufferedInputStreams.

read

public int read()
         throws IOException
Reads a single byte from this BufferedInputStream and returns the result as an int. The low-order byte is returned or -1 of the end of stream was encountered. If the underlying buffer does not contain any available bytes then it is filled and the first byte is returned.

Overrides:
read in class FilterInputStream
Returns:
the byte read or -1 if end of stream.
Throws:
IOException - If the stream is already closed or another IOException occurs.

read

public int read(byte[] buffer,
                int offset,
                int length)
         throws IOException
Reads at most length bytes from this BufferedInputStream and stores them in byte array buffer starting at offset offset. Answer the number of bytes actually read or -1 if no bytes were read and end of stream was encountered. If all the buffered bytes have been used, a mark has not been set, and the requested number of bytes is larger than the receiver's buffer size, this implementation bypasses the buffer and simply places the results directly into buffer.

Overrides:
read in class FilterInputStream
Parameters:
buffer - the byte array in which to store the read bytes.
offset - the offset in buffer to store the read bytes.
length - the maximum number of bytes to store in buffer.
Returns:
the number of bytes actually read or -1 if end of stream.
Throws:
IOException - If the stream is already closed or another IOException occurs.

reset

public void reset()
           throws IOException
Reset this BufferedInputStream to the last marked location. If the readlimit has been passed or no mark has been set, throw IOException. This implementation resets the target stream.

Overrides:
reset in class FilterInputStream
Throws:
IOException - If the stream is already closed or another IOException occurs.

skip

public long skip(long amount)
          throws IOException
Skips amount number of bytes in this BufferedInputStream. Subsequent read()'s will not return these bytes unless reset() is used.

Overrides:
skip in class FilterInputStream
Parameters:
amount - the number of bytes to skip.
Returns:
the number of bytes actually skipped.
Throws:
IOException - If the stream is already closed or another IOException occurs.

Build 1.0_r1(from source)

Please submit a feedback, bug or feature