Class InputStream
已知直接子类:
AudioInputStream , ByteArrayInputStream , FileInputStream , FilterInputStream , InputStream , ObjectInputStream , PipedInputStream , SequenceInputStream , StringBufferInputStream
inputStream这个抽象类是表示以上输入字节流的所有类的超类(父类)。
需要定义InputStream
子类的应用InputStream
必须始终提供一种返回输入的下一个字节的方法。
方法详细信息
-
read
public abstract int read() throws IOException
从输入流读取数据的下一个字节。 值字节被返回作为int
范围0
至255
。 如果没有字节可用,因为已经到达流的末尾,则返回值-1
。 该方法阻塞直到输入数据可用,检测到流的结尾,或抛出异常。一个子类必须提供这个方法的一个实现。
结果
数据的下一个字节,如果达到流的末尾,
-1
。异常
IOException
- 如果发生I / O错误。 -
read
public int read(byte[] b) throws IOException
从输入流读取一些字节数,并将它们存储到缓冲区b
。 实际读取的字节数作为整数返回。 该方法阻塞直到输入数据可用,检测到文件结束或抛出异常。如果
b
的长度为零,则不会读取字节并返回0
; 否则,尝试读取至少一个字节。 如果没有字节可用,因为流在文件末尾,则返回值-1
; 否则,读取至少一个字节并存储到b
。第一个字节读取存储在元素
b[0]
,下一个字节存入b[1]
等等。 读取的字节数最多等于b
的长度。 令k为实际读取的字节数; 这些字节将存储在元素b[0]
至b[
k-1]
,使元素b[
k]
至b[b.length-1]
不受影响。该
read(b)
用于类方法InputStream
具有相同的效果为:read(b, 0, b.length)
参数
b
- 读取数据的缓冲区。结果
读取到缓冲区的总字节数,或者如果没有更多的数据,因为已经到达流的末尾,则是
-1
。异常
IOException
- 如果由于文件结尾以外的任何原因,如果输入流已关闭,或者发生其他I / O错误,则无法读取第一个字节。NullPointerException
- 如果b
是null
。另请参见:
read(byte[], int, int)