java.lang.Object | +----java.io.InputStream
这个类是一个抽象类,表示所有字节输入流类的父类。
需要定义 InputStream 的子类的应用程序必须提供一个能返回输入的下一个字节的方法。
mark 和 reset 方法。
b.length 个字节数据读到一个字节数组中。
len 个字节数据读入一个字节数组中。
mark 方法时标记的位置。
n 个字节数据。
public InputStream()
public abstract int read() throws IOException
0 到 255 范围内的一个 int 数。如果已读到流的末尾,没有再可读的字节时,则返回 -1。
该方法将一直阻塞,直到有输入数据、检测到了数据流尾或抛出异常。
子类必须提供当前方法的一个实现。
-1。
public int read(byte b[]) throws IOException
b.length 个字节数据读到一个字节数组中。
InputStream 的 read 方法,用三个参数
b, 0 和 b.length 调用具有三个参数的 read 方法。
-1。
public int read(byte b[],
int off,
int len) throws IOException
len 个字节数据读入一个字节数组中。 这个方法将阻塞直到有输入数据可用。 如果参数 b 为 null,
则将抛出 NullPointerException。
InputStream的read 方法,使用零个参数的 read
方法,一次读取一个字节,并将之放入该数组。鼓励子类提供一个更有效的当前方法的实现。
-1。
public long skip(long n) throws IOException
n 个字节数据。
skip 方法可能因各种原因终止跳过一些较小的字节数(可能是零)。返回实际跳过的字节数。
InputStream 的 skip 方法创建一个长度为
n 的数组,然后读取数据直到将 n 个字节的数据读入此数组,或已到达了此流末尾。鼓励子类提供一个更有效的当前方法的实现。
public int available() throws IOException
InputStream 的 available 方法返回 0。这个方法应该被子类覆盖。
public void close() throws IOException
InputStream 的 close 方法不做任何事。
public synchronized void mark(int readlimit)
reset 方法重新将流定位于最后标记位置,以便后续读取能重新读取相同字节。
readlimit 参数给出当前输入流在标记位置变为非法前允许读取的字节数。
InputStream 的 close 方法不做任何事。
public synchronized void reset() throws IOException
mark 方法时标记的位置。
InputStream 的 reset 方法抛出一个
IOException, 因为输入流缺省时不支持
mark 和 reset 方法。
当读取前需要先读少许以判断流内容时,可以使用流标记。 调用一些通用的语法分析器来实现这个功能是最容易的。若该流是语法分析器处理的类型,则正常通过。若流不是该类型,则失败时语法分析器应抛出异常,如果这发生在 readlimit 个字节内,则允许外部代码复位该流且尝试使用另一个语法分析器。
public boolean markSupported()
mark 和 reset
方法。
InputStream 的 markSupported 方法返回
false。
true;否则为false。