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

类 java.io.FilterInputStream

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

public class FilterInputStream
extends InputStream
下列类的父类:
BufferedInputStream, CheckedInputStream, DataInputStream, DigestInputStream, InflaterInputStream, LineNumberInputStream, PushbackInputStream

这个类是所有输入流过滤器类的父类。 这些流位于一个已存在的输入流( 基本的 输入流)的上层, 但是提供了附加功能。

FilterInputStream 简单的覆盖了 InputStream 的所有方法,使之用于向基本输入流发出各种请求。 FilterInputStream 的子类可以进一步覆盖这些方法中的某些,也可提供额外的方法和域。


变量索引

in
基本的输入流。

构造子索引

FilterInputStream(InputStream)
在指定的输入流之上,创建一个输入流过滤器。

方法索引

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

变量

in
 protected InputStream in
基本的输入流。


构造子

FilterInputStream
 protected FilterInputStream(InputStream in)
在指定的输入流之上,创建一个输入流过滤器。

参数:
in - 基本的输入缓存。

方法

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

FilterInputStreamread 方法,调用它的基本输入流的 read,且将它的返回值返回。

返回值:
数据的下一个字节;如果已读到流尾则为 -1
抛出: IOException
如果发生某个 I/O 错误。
覆盖:
InputStream 中的 read
参见:
in
read
 public int read(byte b[]) throws IOException
将当前输入流中 byte.length 个字节数据读到一个字节数组中。 这个方法将阻塞直到有输入数据可用。

FilterInputStreamread 方法,用三个参数 b, 0b.length 调用具有三个参数的 read 方法, 且将它的返回值返回。

注意这个方法并不用单一参数 b 调用它的基本流中的一个参数的 read 方法。如果 FilterInputStream 的子类已覆盖了三个参数的 read 方法,则它们不需覆盖这个方法。

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

FilterInputStreamread 方法,用相同参数调用它的基本输入流中的 read 方法, 且将此方法的返回值返回。

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

FilterInputStreamskip 方法,用相同参数调用它的基本输入流中的 skip 方法, 且将它的返回值返回。

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

FilterInputStreamavailable 方法,调用它的基本输入流的 available,且将它的返回值返回。

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

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

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

FilterInputStreammark 方法,用 readlimit 参数,调用它的基本输入流的mark

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

FilterInputStreamreset 方法,调用它的基本输入流的 reset

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

抛出: IOException
若该流仍未标记或此标记已是非法的。
覆盖:
InputStream 中的 reset
参见:
in, mark
markSupported
 public boolean markSupported()
测试该输入流是否支持 markreset 方法。 FilterInputStreammarkSupported 方法,调用它的基本输入流的 markSupported,且将它的返回值返回。

返回值:
如果当前流类型支持 markreset 方法则为 true;否则为 false
覆盖:
InputStream 中的 markSupported
参见:
in, mark, reset

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