|
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. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。