Android
java.io
public class

java.io.BufferedInputStream

java.lang.Object
java.io.InputStream Closeable
java.io.FilterInputStream
java.io.BufferedInputStream

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.

Summary

Fields

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

Public Constructors

            BufferedInputStream(InputStream in)
Constructs a new BufferedInputStream on the InputStream in.
            BufferedInputStream(InputStream in, int size)
Constructs a new BufferedInputStream on the InputStream in.

Public Methods

  synchronized        int  available()
Returns an int representing the number of bytes that are available before this BufferedInputStream will block.
  synchronized        void  close()
Close this BufferedInputStream.
  synchronized        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().
  synchronized        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.
  synchronized        int  read()
Reads a single byte from this BufferedInputStream and returns the result as an int.
  synchronized        void  reset()
Reset this BufferedInputStream to the last marked location.
  synchronized        long  skip(long amount)
Skips amount number of bytes in this BufferedInputStream.
Methods inherited from class java.io.FilterInputStream
Methods inherited from class java.io.InputStream
Methods inherited from class java.lang.Object
Methods inherited from interface java.io.Closeable

Details

Fields

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. -1 indicates no mark has been set or the mark has been invalidated.

protected int pos

The current position within the byte array buf.

Public Constructors

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.

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.

Public Methods

public synchronized int available()

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.

Returns

  • the number of bytes available before blocking.

Throws

IOException If an error occurs in this stream.

public synchronized void close()

Close this BufferedInputStream. This implementation closes the target stream and releases any resources associated with it.

Throws

IOException If an error occurs attempting to close this stream.

public synchronized 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.

Parameters

readlimit the number of bytes to be able to read before invalidating the mark.

public boolean markSupported()

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

Returns

  • true for BufferedInputStreams.

public synchronized 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. 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.

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.

public synchronized int read()

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.

Returns

  • the byte read or -1 if end of stream.

Throws

IOException If the stream is already closed or another IOException occurs.

public synchronized void reset()

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.

Throws

IOException If the stream is already closed or another IOException occurs.

public synchronized long skip(long amount)

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

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.
Copyright 2007 Google Inc. Build 0.9_r1-98467 - 14 Aug 2008 18:56