    All Packages  Class Hierarchy  This Package  Previous  Next  Index

# Class java.io.BufferedInputStream

    java.lang.Object
       |
       +----java.io.InputStream
               |
               +----java.io.FilterInputStream
                       |
                       +----java.io.BufferedInputStream

public class BufferedInputStream
extends FilterInputStream

The class implements a buffered input stream. By setting up such an input stream, an application can read bytes from a stream without necessarily causing a call to the underlying system for each byte read. The data is read by blocks into a buffer; subsequent reads can access the data directly from the buffer.

##

buf
  The buffer where data is stored.
count
  The index one greater than the index of the last valid byte in the buffer.
marklimit
  The maximum read ahead allowed after a call to the `mark` method before subsequent calls to the `reset` method fail.
markpos
  The value of the `pos` field at the time the last `mark` method was called.
pos
  The current position in the buffer.

##

BufferedInputStream(InputStream)
  Creates a new buffered input stream to read data from the specified input stream with a default 512-byte buffer size.
BufferedInputStream(InputStream, int)
  Creates a new buffered input stream to read data from the specified input stream with the specified buffer size.

##

available()
  Returns the number of bytes that can be read from this input stream without blocking.
mark(int)
  Marks the current position in this input stream.
markSupported()
  Tests if this input stream supports the `mark` and `reset` methods.
read()
  Reads the next byte of data from this buffered input stream.
read(byte[], int, int)
  Reads bytes into a portion of an array.
reset()
  Repositions this stream to the position at the time the `mark` method was last called on this input stream.
skip(long)
  Skips over and discards `n` bytes of data from the input stream.

##

buf

     protected byte buf[]

  The buffer where data is stored.

count

     protected int count

  The index one greater than the index of the last valid byte in the buffer.

pos

     protected int pos

  The current position in the buffer. This is the index of the next character to be read from the `buf` array.

  See Also:
    buf

markpos

     protected int markpos

  The value of the `pos` field at the time the last `mark` method was called. The value of this field is `-1` if there is no current mark.

  See Also:
    mark, pos

marklimit

     protected int marklimit

  The maximum read ahead allowed after a call to the `mark` method before subsequent calls to the `reset` method fail.

  See Also:
    mark, reset

##

BufferedInputStream

     public BufferedInputStream(InputStream in)

  Creates a new buffered input stream to read data from the specified input stream with a default 512-byte buffer size.

  Parameters:
    in - the underlying input stream.

BufferedInputStream

     public BufferedInputStream(InputStream in,
                                int size)

  Creates a new buffered input stream to read data from the specified input stream with the specified buffer size.

  Parameters:
    in - the underlying input stream.
    size - the buffer size.

##

read

     public synchronized int read() throws IOException

  Reads the next byte of data from this buffered input stream. The value byte is returned as an `int` in the range `0` to `255`. If no byte is available because the end of the stream has been reached, the value `-1` is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.

  The `read` method of `BufferedInputStream` returns the next byte of data from its buffer if the buffer is not empty. Otherwise, it refills the buffer from the underlying input stream and returns the next character, if the underlying stream has not returned an end-of-stream indicator.

  Returns:
    the next byte of data, or `-1` if the end of the stream is reached.
  Throws: IOException
    if an I/O error occurs.
  Overrides:
    read in class FilterInputStream
  See Also:
    in

read

     public synchronized int read(byte b[],
                                  int off,
                                  int len) throws IOException

  Reads bytes into a portion of an array. This method will block until some input is available, an I/O error occurs, or the end of the stream is reached.

  If this stream's buffer is not empty, bytes are copied from it into the array argument. Otherwise, the buffer is refilled from the underlying input stream and, unless the stream returns an end-of-stream indication, the array argument is filled with characters from the newly-filled buffer.

  As an optimization, if the buffer is empty, the mark is not valid, and `len` is at least as large as the buffer, then this method will read directly from the underlying stream into the given array. Thus redundant `BufferedInputStream`s will not copy data unnecessarily.

  Parameters:
    b - destination buffer.
    off - offset at which to start storing bytes.
    len - maximum number of bytes to read.
  Returns:
    the number of bytes read, or `-1` if the end of the stream has been reached.
  Throws: IOException
    if an I/O error occurs.
  Overrides:
    read in class FilterInputStream

skip

     public synchronized long skip(long n) throws IOException

  Skips over and discards `n` bytes of data from the input stream. The `skip` method may, for a variety of reasons, end up skipping over some smaller number of bytes, possibly zero. The actual number of bytes skipped is returned.

  The `skip` method of `BufferedInputStream` compares the number of bytes it has available in its buffer, k, where k = `count - pos`, with `n`. If `n` ≤ k, then the `pos` field is incremented by `n`. Otherwise, the `pos` field is incremented to have the value `count`, and the remaining bytes are skipped by calling the `skip` method on the underlying input stream, supplying the argument `n -` k.

  Parameters:
    n - the number of bytes to be skipped.
  Returns:
    the actual number of bytes skipped.
  Throws: IOException
    if an I/O error occurs.
  Overrides:
    skip in class FilterInputStream

available

     public synchronized int available() throws IOException

  Returns the number of bytes that can be read from this input stream without blocking.

  The `available` method of `BufferedInputStream` returns the sum of the the number of bytes remaining to be read in the buffer (`count - pos`) and the result of calling the `available` method of the underlying input stream.

  Returns:
    the number of bytes that can be read from this input stream without blocking.
  Throws: IOException
    if an I/O error occurs.
  Overrides:
    available in class FilterInputStream
  See Also:
    in

mark

     public synchronized void mark(int readlimit)

  Marks the current position in this input stream. A subsequent call to the `reset` method repositions the stream at the last marked position so that subsequent reads re-read the same bytes.

  The `readlimit` argument tells the input stream to allow that many bytes to be read before the mark position gets invalidated.

  Parameters:
    readlimit - the maximum limit of bytes that can be read before the mark position becomes invalid.
  Overrides:
    mark in class FilterInputStream
  See Also:
    reset

reset

     public synchronized void reset() throws IOException

  Repositions this stream to the position at the time the `mark` method was last called on this input stream.

  If the stream has not been marked, or if the mark has been invalidated, an IOException is thrown. Stream marks are intended to be used in situations where you need to read ahead a little to see what's in the stream. Often this is most easily done by invoking some general parser. If the stream is of the type handled by the parser, it just chugs along happily. If the stream is not of that type, the parser should toss an exception when it fails. If an exception gets tossed within readlimit bytes, the parser will allow the outer code to reset the stream and to try another parser.

  Throws: IOException
    if this stream has not been marked or if the mark has been invalidated.
  Overrides:
    reset in class FilterInputStream
  See Also:
    mark

markSupported

     public boolean markSupported()

  Tests if this input stream supports the `mark` and `reset` methods. The `markSupported` method of `BufferedInputStream` returns `true`.

  Returns:
    a `boolean` indicating if this stream type supports the `mark` and `reset` methods.
  Overrides:
    markSupported in class FilterInputStream
  See Also:
    mark, reset

    All Packages  Class Hierarchy  This Package  Previous  Next  Index

Submit a bug or feature - Version 1.1.8 of Java Platform API Specification
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1995-1999 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.