当前位置 类层次(JDK) 所有类(JDK) 所有域和方法(JDK)

类 java.io.InputStream

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

public abstract class InputStream
extends Object
下列类的父类:
ByteArrayInputStream, FileInputStream, FilterInputStream, ObjectInputStream, PipedInputStream, SequenceInputStream, StringBufferInputStream

这个类是一个抽象类,表示所有字节输入流类的父类。

需要定义 InputStream 的子类的应用程序必须提供一个能返回输入的下一个字节的方法。

来自:
JDK1.0
参见:
BufferedInputStream, ByteArrayInputStream, DataInputStream, FilterInputStream, read, OutputStream, PushbackInputStream

构造子索引

InputStream()

方法索引

available()
返回从当前输入流中可无阻塞读取的字节数。
close()
关闭当前输入流,并释放与它相关的任一系统资源。
mark(int)
在该输入流中标记当前位置。
markSupported()
测试该输入流是否支持 markreset 方法。
read()
从当前输入流中读取数据的下一个字节。
read(byte[])
将当前输入流中 b.length 个字节数据读到一个字节数组中。
read(byte[], int, int)
将输入流中 len 个字节数据读入一个字节数组中。
reset()
将该输入流重新定位到上一次调用 mark 方法时标记的位置。
skip(long)
从当前输入流中跳过并丢弃 n 个字节数据。

构造子

InputStream
 public InputStream()

方法

read
 public abstract int read() throws IOException
从当前输入流中读取数据的下一个字节。 返回的字节值是在 0255 范围内的一个 int 数。如果已读到流的末尾,没有再可读的字节时,则返回 -1。 该方法将一直阻塞,直到有输入数据、检测到了数据流尾或抛出异常。

子类必须提供当前方法的一个实现。

返回值:
数据的下一个字节;如果已读到流尾,则为 -1
抛出: IOException
如果发生某个 I/O 错误。
read
 public int read(byte b[]) throws IOException
将当前输入流中 b.length 个字节数据读到一个字节数组中。

InputStreamread 方法,用三个参数 b, 0b.length 调用具有三个参数的 read 方法。

参数:
b - 读取数据的缓冲区。
返回值:
读到缓存区的整个字节数;如果读到流尾不再有数据可读则为-1
抛出: IOException
如果发生某个 I/O 错误。
参见:
read
read
 public int read(byte b[],
                   int off,
                 int len) throws IOException
将输入流中 len 个字节数据读入一个字节数组中。 这个方法将阻塞直到有输入数据可用。 如果参数 b 为 null, 则将抛出 NullPointerException

InputStreamread 方法,使用零个参数的 read 方法,一次读取一个字节,并将之放入该数组。鼓励子类提供一个更有效的当前方法的实现。

参数:
b - 读取数据的缓冲区。
off - 读取数据的起始偏移。
len - 读取的最大字节数。
返回值:
读入缓存区的字节总数;如果已读到流尾不再有数据可读则为 -1
抛出: IOException
如果发生某个 I/O 错误。
参见:
read
skip
 public long skip(long n) throws IOException
从当前输入流中跳过并丢弃 n 个字节数据。 skip 方法可能因各种原因终止跳过一些较小的字节数(可能是零)。返回实际跳过的字节数。

InputStreamskip 方法创建一个长度为 n 的数组,然后读取数据直到将 n 个字节的数据读入此数组,或已到达了此流末尾。鼓励子类提供一个更有效的当前方法的实现。

参数:
n - 跳过的字节数。
返回值:
实际跳过的字节数。
抛出: IOException
如果发生某个 I/O 错误。
available
 public int available() throws IOException
返回从当前输入流中可无阻塞读取的字节数。 InputStream 的 available 方法返回 0。这个方法应该被子类覆盖。

返回值:
从当前输入流中可无阻塞读取的字节数。
抛出: IOException
如果发生某个 I/O 错误。
close
 public void close() throws IOException
关闭当前输入流,并释放与它相关的任一系统资源。

InputStreamclose 方法不做任何事。

抛出: IOException
如果发生某个 I/O 错误。
mark
 public synchronized void mark(int readlimit)
在该输入流中标记当前位置。 后续调用 reset 方法重新将流定位于最后标记位置,以便后续读取能重新读取相同字节。

readlimit 参数给出当前输入流在标记位置变为非法前允许读取的字节数。

InputStreamclose 方法不做任何事。

参数:
readlimit - 标记位置变为无效前能读取的最大字节数。
参见:
reset
reset
 public synchronized void reset() throws IOException
将该输入流重新定位到上一次调用 mark 方法时标记的位置。

InputStreamreset 方法抛出一个 IOException, 因为输入流缺省时不支持 markreset 方法。

当读取前需要先读少许以判断流内容时,可以使用流标记。 调用一些通用的语法分析器来实现这个功能是最容易的。若该流是语法分析器处理的类型,则正常通过。若流不是该类型,则失败时语法分析器应抛出异常,如果这发生在 readlimit 个字节内,则允许外部代码复位该流且尝试使用另一个语法分析器。

抛出: IOException
若该流仍未标记或此标记已是非法的。
参见:
mark, IOException
markSupported
 public boolean markSupported()
测试该输入流是否支持 markreset 方法。 InputStreammarkSupported 方法返回 false

返回值:
如果该输入流支持 mark 和 reset 方法则为 true;否则为false
参见:
mark, reset

当前位置 类层次(JDK) 所有类(JDK) 所有域和方法(JDK)