java.lang.Object
|
+----java.io.InputStream
|
+----java.io.FilterInputStream
这个类是所有输入流过滤器类的父类。 这些流位于一个已存在的输入流( 基本的 输入流)的上层, 但是提供了附加功能。
类 FilterInputStream 简单的覆盖了
InputStream 的所有方法,使之用于向基本输入流发出各种请求。
FilterInputStream 的子类可以进一步覆盖这些方法中的某些,也可提供额外的方法和域。
mark 和 reset
方法。
byte.length 个字节数据读到一个字节数组中。
len 个字节数据读入一个字节数组中。
mark 方法时标记的位置。
n 个字节数据。
protected InputStream in
protected FilterInputStream(InputStream in)
public int read() throws IOException
0 到 255范围内的一个 int 数。如果已读到流的末尾,没有再可读的字节时,返回 -1。
该方法将一直阻塞,直到有输入数据、检测到了数据流尾或抛出异常。
FilterInputStream 的 read 方法,调用它的基本输入流的 read,且将它的返回值返回。
-1。
public int read(byte b[]) throws IOException
byte.length 个字节数据读到一个字节数组中。 这个方法将阻塞直到有输入数据可用。
FilterInputStream 的 read 方法,用三个参数
b, 0 和 b.length 调用具有三个参数的 read 方法, 且将它的返回值返回。
注意这个方法并不用单一参数 b 调用它的基本流中的一个参数的 read 方法。如果 FilterInputStream 的子类已覆盖了三个参数的
read 方法,则它们不需覆盖这个方法。
-1。
public int read(byte b[],
int off,
int len) throws IOException
len 个字节数据读入一个字节数组中。 这个方法将阻塞直到有输入数据可用。
FilterInputStream 的 read 方法,用相同参数调用它的基本输入流中的 read 方法, 且将此方法的返回值返回。
-1。
public long skip(long n) throws IOException
n 个字节数据。
skip 方法可能因各种原因终止跳过一些较小的字节数(可能是零)。返回实际跳过的字节数。
FilterInputStream 的 skip 方法,用相同参数调用它的基本输入流中的 skip 方法, 且将它的返回值返回。
public int available() throws IOException
FilterInputStream 的 available 方法,调用它的基本输入流的 available,且将它的返回值返回。
public void close() throws IOException
FilterInputStream 的 close 方法,调用它的基本输入流的 close。
public synchronized void mark(int readlimit)
reset 方法重新将流定位于最后标记位置,以便后续读取能重新读取相同字节。
readlimit 参数提供给输入流在标记位置变为非法前所允许读取的字节数。
FilterInputStream 的 mark 方法,用
readlimit 参数,调用它的基本输入流的mark。
public synchronized void reset() throws IOException
mark 方法时所标记的位置。
FilterInputStream 的 reset 方法,调用它的基本输入流的 reset。
当读取前需要先读一些判断流内容时,可以使用流标记。 更通常的是调用一些通用的语法分析器来实现这个功能。若该流是语法分析器处理的类型,则正常通过。否则当失败时语法分析器应抛出异常。 若在 readlimit 字节内抛出异常, 则语法分析器允许外部代码复位该流并尝试使用另一个语法分析器。
public boolean markSupported()
mark 和 reset
方法。 FilterInputStream 的 markSupported
方法,调用它的基本输入流的 markSupported,且将它的返回值返回。
mark 和 reset
方法则为 true;否则为 false。