| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.io.InputStream
java.io.FilterInputStream
public class FilterInputStream
FilterInputStream 包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。FilterInputStream 类本身只是简单地重写那些将所有请求传递给所包含输入流的 InputStream 的所有方法。FilterInputStream 的子类可进一步重写这些方法中的一些方法,并且还可以提供一些额外的方法和字段。
| 字段摘要 | |
|---|---|
| protected  InputStream | in要过滤的输入流。 | 
| 构造方法摘要 | |
|---|---|
| protected  | FilterInputStream(InputStream in)将参数 in分配给字段this.in,以便记住它供以后使用,通过这种方式创建一个FilterInputStream。 | 
| 方法摘要 | |
|---|---|
|  int | available()返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。 | 
|  void | close()关闭此输入流并释放与此流关联的所有系统资源。 | 
|  void | mark(int readlimit)在输入流中的当前位置上作标记。 | 
|  boolean | markSupported()测试此输入流是否支持 mark和reset方法。 | 
|  int | read()从此输入流中读取下一个数据字节。 | 
|  int | read(byte[] b)从此输入流中将 byte.length个字节的数据读入一个 byte 数组中。 | 
|  int | read(byte[] b,
     int off,
     int len)从此输入流中将 len个字节的数据读入一个 byte 数组中。 | 
|  void | reset()将此流重新定位到对此输入流最后调用 mark方法时的位置。 | 
|  long | skip(long n)跳过和丢弃此输入流中数据的 n个字节。 | 
| 从类 java.lang.Object 继承的方法 | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| 字段详细信息 | 
|---|
protected volatile InputStream in
| 构造方法详细信息 | 
|---|
protected FilterInputStream(InputStream in)
in 分配给字段 this.in,以便记住它供以后使用,通过这种方式创建一个 FilterInputStream。
in - 底层输入流,如果要在没有底层流的情况下创建此实例,则该参数为 null。| 方法详细信息 | 
|---|
public int read()
         throws IOException
0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有字节可用,则返回 -1。在输入数据可用、检测到流末尾或抛出异常之前,此方法将一直阻塞。 
 
此方法只执行 in.read() 并返回结果。
InputStream 中的 read-1。
IOException - 如果发生 I/O 错误。in
public int read(byte[] b)
         throws IOException
byte.length 个字节的数据读入一个 byte 数组中。在某些输入可用之前,此方法将阻塞。 
 
此方法只执行 read(b, 0, b.length) 调用并返回结果。注意到它不 执行 in.read(b) 很重要;FilterInputStream 的某些子类依赖于实际使用的实现策略。
InputStream 中的 readb - 存储读取数据的缓冲区。
-1。
IOException - 如果发生 I/O 错误。read(byte[], int, int)
public int read(byte[] b,
                int off,
                int len)
         throws IOException
len 个字节的数据读入一个 byte 数组中。如果 len 不为 0,则在输入可用前,此方法将阻塞;否则,不读取任何字节并且返回 0。 
 
此方法只执行 in.read(b, off, len) 并返回结果。
InputStream 中的 readb - 存储读取数据的缓冲区。off - 目标数组 b 中的起始偏移量。len - 读取的最大字节数。
-1。
NullPointerException - 如果 b 为 null。
IndexOutOfBoundsException - 如果 off 为负、len 为负,或者 len 大于 b.length - off
IOException - 如果发生 I/O 错误。in
public long skip(long n)
          throws IOException
n 个字节。出于各种原因,skip 方法结束时跳过的字节数可能小于该数,也可能为 0。导致这种情况的原因很多,跳过 n 个字节之前已到达文件末尾只是其中一种可能。返回跳过的实际字节数。如果 n 为负,则不跳过任何字节。
 此类的 skip 方法创建一个 byte 数组,然后重复将字节读入其中,直到读够 n 个字节或已到达流末尾为止。建议子类提供此方法更为有效的实现。例如,可依赖搜索能力的实现。 
 
此方法只执行 in.skip(n)。
InputStream 中的 skipn - 要跳过的字节数。
IOException - 如果流不支持搜索,或者发生其他 I/O 错误。
public int available()
              throws IOException
此方法返回 in.available() 的结果。
InputStream 中的 availableIOException - 如果发生 I/O 错误。
public void close()
           throws IOException
in.close()。
Closeable 中的 closeInputStream 中的 closeIOException - 如果发生 I/O 错误。inpublic void mark(int readlimit)
reset 方法的后续调用将此流重新定位在最后标记的位置上,以便后续读取操作重新读取相同的字节。
 
readlimit 参数告知此输入流在标记位置无效之前允许读取的字节数。 
 
此方法只执行 in.mark(readlimit)。
InputStream 中的 markreadlimit - 在标记位置变得无效前可以读取字节的最大限制。in, 
reset()
public void reset()
           throws IOException
mark 方法时的位置。 
 
此方法只执行 in.reset()。
 
在需要提前读取一小部分数据以查看流中有什么的情况下,可以使用流的标记。通过调用通用解析器常常最容易做到这一点。如果流属于通过解析处理的类型,那么解析起来就很容易。如果流不属于那种类型,那么解析器应该在解析失败时抛出一个异常。如果这发生在 readlimit 个字节内,那么它允许外部代码重置流,并尝试另一种解析器。
InputStream 中的 resetIOException - 如果已经标记了该流,或者标记已经无效。in, 
mark(int)public boolean markSupported()
mark 和 reset 方法。此方法只执行 in.markSupported()。
InputStream 中的 markSupportedmark 和 reset 方法,则返回 true;否则返回 false。in, 
InputStream.mark(int), 
InputStream.reset()| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。