InputStream.read

Reads some number of bytes from the input stream and stores them into the buffer array <code>b</code>. The number of bytes actually read is returned as an integer. This method blocks until input data is available, end of file is detected, or an exception is thrown.

<p> If the length of <code>b</code> is zero, then no bytes are read and <code>0</code> is returned; otherwise, there is an attempt to read at least one byte. If no byte is available because the stream is at the end of the file, the value <code>-1</code> is returned; otherwise, at least one byte is read and stored into <code>b</code>.

<p> The first byte read is stored into element <code>b[0]</code>, the next one into <code>b[1]</code>, and so on. The number of bytes read is, at most, equal to the length of <code>b</code>. Let <i>k</i> be the number of bytes actually read; these bytes will be stored in elements <code>b[0]</code> through <code>b[</code><i>k</i><code>-1]</code>, leaving elements <code>b[</code><i>k</i><code>]</code> through <code>b[b.length-1]</code> unaffected.

<p> The <code>read(b)</code> method for class <code>InputStream</code> has the same effect as: <pre><code> read(b, 0, b.length) </code></pre>

@param b the buffer into which the data is read. @return the total number of bytes read into the buffer, or <code>-1</code> if there is no more data because the end of the stream has been reached. @exception IOException If the first byte cannot be read for any reason other than the end of the file, if the input stream has been closed, or if some other I/O error occurs. @exception NullPointerException if <code>b</code> is <code>null</code>. @see java.io.InputStream#read(byte[], int, int)

  1. int read()
  2. int read(byte[] b)
    class InputStream
    int
    read
    (
    byte[] b
    )
  3. int read(byte[] b, int off, int len)

Meta