看源码啊,FileInputStream/*** Reads a byte of data from this input stream. This method blocks* if no input is yet available.** @return the next byte of data, or <code>-1</code> if the end of the* file is reached.* @exception IOException if an I/O error occurs.*/public native int read() throws IOException;BufferedInputStream/*** See* the general contract of the <code>read</code>* method of <code>InputStream</code>.** @return the next byte of data, or <code>-1</code> if the end of the* stream is reached.* @exception IOException if this input stream has been closed by* invoking its {@link #close()} method,* or an I/O error occurs.* @see java.io.FilterInputStream#in*/public synchronized int read() throws IOException {if (pos >= count) {fill();if (pos >= count)return -1;}return getBufIfOpen()[pos++] & 0xff;}