|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.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 个字节的数据读入一个字节数组中。 |
int |
read(byte[] b,
int off,
int len)
从此输入流中将 len 个字节的数据读入一个字节数组中。 |
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
个字节的数据读入一个字节数组中。在某些输入可用之前,此方法将阻塞。
此方法只执行 read(b, 0, b.length)
调用并返回结果。注意到它不 执行 in.read(b)
很重要;FilterInputStream
的某些子类依赖于实际使用的实现策略。
InputStream
中的 read
b
- 存储读取数据的缓冲区。
-1
。
IOException
- 如果发生 I/O 错误。read(byte[], int, int)
public int read(byte[] b, int off, int len) throws IOException
len
个字节的数据读入一个字节数组中。在某些输入可用之前,此方法将阻塞。
此方法只执行 in.read(b, off, len)
并返回结果。
InputStream
中的 read
b
- 存储读取数据的缓冲区。off
- 数据的起始偏移量。len
- 读取的最大字节数。
-1
。
IOException
- 如果发生 I/O 错误。in
public long skip(long n) throws IOException
n
个字节的数据。出于各种原因,skip
方法最终跳过的字节数可能更少一些,甚至可能为 0
。返回实际跳过的字节数。
此方法只执行 in.skip(n)
。
InputStream
中的 skip
n
- 要跳过的字节数。
IOException
- 如果发生 I/O 错误。public int available() throws IOException
此方法只执行 in.available()
并返回结果。
InputStream
中的 available
IOException
- 如果发生 I/O 错误。in
public void close() throws IOException
in.close()
。
Closeable
中的 close
InputStream
中的 close
IOException
- 如果发生 I/O 错误。in
public void mark(int readlimit)
reset
方法的后续调用将此流重新定位在最后标记的位置上,以便后续读取操作重新读取相同的字节。
readlimit
参数告知此输入流在标记位置无效之前允许读取的字节数。
此方法只执行 in.mark(readlimit)
。
InputStream
中的 mark
public void reset() throws IOException
mark
方法时的位置。
此方法只执行 in.reset()
。
在需要提前读取一小部分数据以查看流中有什么的情况下,可以使用流的标记。通过调用通用分析器常常最容易做到这一点。如果流属于通过分析处理的类型,那么分析起来就很容易。如果流不属于那种类型,那么分析器应该在分析失败时抛出一个异常。如果这发生在 readlimit 个字节内,那么它允许外部代码重置流,并尝试另一种分析器。
InputStream
中的 reset
IOException
- 如果已经标记了该流,或者标记已经无效。in
,
mark(int)
public boolean markSupported()
mark
和 reset
方法。此方法只执行 in.markSupported()
。
InputStream
中的 markSupported
mark
和 reset
方法,则返回 true
;否则返回 false
。in
,
InputStream.mark(int)
,
InputStream.reset()
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。