Save This Page
Home » apache-harmony-6.0-src-r917296-snapshot » java » io » [javadoc | source]
java.io
abstract public class: InputStream [javadoc | source]
java.lang.Object
   java.io.InputStream

All Implemented Interfaces:
    Closeable

The base class for all input streams. An input stream is a means of reading data from a source in a byte-wise manner.

Some input streams also support marking a position in the input stream and returning to this position later. This abstract class does not provide a fully working implementation, so it needs to be subclassed, and at least the #read() method needs to be overridden. Overriding some of the non-abstract methods is also often advised, since it might result in higher efficiency.

Many specialized input streams for purposes like reading from a file already exist in this package.

Constructor:
 public InputStream() 
Method from java.io.InputStream Summary:
available,   close,   mark,   markSupported,   read,   read,   read,   reset,   skip
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from java.io.InputStream Detail:
 public int available() throws IOException 
    Returns the number of bytes that are available before this stream will block. This implementation always returns 0. Subclasses should override and indicate the correct number of bytes available.
 public  void close() throws IOException 
    Closes this stream. Concrete implementations of this class should free any resources during close. This implementation does nothing.
 public  void mark(int readlimit) 
    Sets a mark position in this InputStream. The parameter {@code readlimit} indicates how many bytes can be read before the mark is invalidated. Sending {@code reset()} will reposition the stream back to the marked position provided {@code readLimit} has not been surpassed.

    This default implementation does nothing and concrete subclasses must provide their own implementation.

 public boolean markSupported() 
    Indicates whether this stream supports the {@code mark()} and {@code reset()} methods. The default implementation returns {@code false}.
 abstract public int read() throws IOException
    Reads a single byte from this stream and returns it as an integer in the range from 0 to 255. Returns -1 if the end of the stream has been reached. Blocks until one byte has been read, the end of the source stream is detected or an exception is thrown.
 public int read(byte[] b) throws IOException 
    Reads bytes from this stream and stores them in the byte array {@code b}.
 public int read(byte[] b,
    int offset,
    int length) throws IOException 
    Reads at most {@code length} bytes from this stream and stores them in the byte array {@code b} starting at {@code offset}.
 public synchronized  void reset() throws IOException 
    Resets this stream to the last marked location. Throws an {@code IOException} if the number of bytes read since the mark has been set is greater than the limit provided to {@code mark}, or if no mark has been set.

    This implementation always throws an {@code IOException} and concrete subclasses should provide the proper implementation.

 public long skip(long n) throws IOException 
    Skips at most {@code n} bytes in this stream. It does nothing and returns 0 if {@code n} is negative. Less than {@code n} characters are skipped if the end of this stream is reached before the operation completes.

    This default implementation reads {@code n} bytes into a temporary buffer. Concrete subclasses should provide their own implementation.