|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.io.InputStream java.io.FilterInputStream java.io.PushbackInputStream
public class PushbackInputStream
PushbackInputStream
向另一个输入流添加“推回 (push back)”或“取消读取 (unread)”一个字节的功能。这在以下情况下非常有用,即代码片段可以很方便地读取由特定字节值分隔的不定数量的数据字节;在读取终止字节后,该代码片段可以“取消读取”该字节,这样,输入流上的下一个读取操作将会重新读取被推回的字节。例如,表示构成标识符的字符的字节可能由表示操作符字符的字节终止;其作业只是读取标识符的方法可以进行读取,直到该操作看到此操作符,然后将该操作符推回以进行重读。
字段摘要 | |
---|---|
protected byte[] |
buf
推回缓冲区。 |
protected int |
pos
推回缓冲区中的位置,从该位置将读取下一个字节。 |
从类 java.io.FilterInputStream 继承的字段 |
---|
in |
构造方法摘要 | |
---|---|
PushbackInputStream(InputStream in)
创建 PushbackInputStream 并保存其参数输入流 in ,以便将来使用。 |
|
PushbackInputStream(InputStream in,
int size)
使用指定 size 的推回缓冲区创建 PushbackInputStream ,并保存其参数输入流 in ,以便将来使用。 |
方法摘要 | |
---|---|
int |
available()
返回可以不受阻塞地从此输入流读取的字节数。 |
void |
close()
关闭此输入流并释放与此流关联的所有系统资源。 |
void |
mark(int readlimit)
在此输入流中标记当前的位置。 |
boolean |
markSupported()
测试此输入流是否支持 mark 和 reset 方法以及不支持哪一个。 |
int |
read()
从此输入流中读取下一个数据字节。 |
int |
read(byte[] b,
int off,
int len)
从此输入流将最多 len 个数据字节读入字节数组。 |
void |
reset()
将此流重新定位到对此输入流最后调用 mark 方法时的位置。 |
long |
skip(long n)
从此输入流中跳过并丢弃 n 个数据字节。 |
void |
unread(byte[] b)
推回一个字节数组,方法是将其复制到推回缓冲区前面。 |
void |
unread(byte[] b,
int off,
int len)
推回字节数组的某一部分,方法是将其复制到推回缓冲区前面。 |
void |
unread(int b)
推回一个字节,方法是将其复制到推回缓冲区前面。 |
从类 java.io.FilterInputStream 继承的方法 |
---|
read |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
protected byte[] buf
protected int pos
pos
将等于 buf.length
;当该缓冲区为满时,pos
将等于零。
构造方法详细信息 |
---|
public PushbackInputStream(InputStream in, int size)
size
的推回缓冲区创建 PushbackInputStream
,并保存其参数输入流 in
,以便将来使用。最初,不存在推回字节(字段 pushBack
被初始化为 -1
)。
in
- 从中读取字节的输入流。size
- 推回缓冲区的大小。
IllegalArgumentException
- 如果 size <= 0public PushbackInputStream(InputStream in)
PushbackInputStream
并保存其参数输入流 in
,以便将来使用。最初,不存在推回字节(字段 pushBack
被初始化为 -1
)。
in
- 从中读取字节的输入流。方法详细信息 |
---|
public int read() throws IOException
0
到 255
范围内的 int
字节值。如果因流的末尾已到达而没有可用的字节,则返回值 -1
。在输入数据可用、检测到流的末尾或者抛出异常前,此方法一直阻塞。
此方法返回最近推回的字节(如果存在),否则调用其基础输入流的 read
方法,并返回该方法返回的任何值。
FilterInputStream
中的 read
-1
。
IOException
- 如果发生 I/O 错误。InputStream.read()
public int read(byte[] b, int off, int len) throws IOException
len
个数据字节读入字节数组。此方法首先读取任何推回字节;然后,如果读取数少于 len
个字节,则它将从基础输入流读取。在至少 1 个输入字节可用前,此方法一直阻塞。
FilterInputStream
中的 read
b
- 读入数据的缓冲区。off
- 数据的初始偏移量。len
- 读取的最大字节数。
-1
。
IOException
- 如果发生 I/O 错误。InputStream.read(byte[], int, int)
public void unread(int b) throws IOException
(byte)b
。
b
- 要推回其低位字节的 int
值。
IOException
- 如果推回缓冲区中没有存储字节的足够空间。public void unread(byte[] b, int off, int len) throws IOException
b[off]
,其后的字节将具有值 b[off+1]
,依次类推。
b
- 要推回的字节数组。off
- 数据的初始偏移量。len
- 要推回的字节数。
IOException
- 如果推回缓冲区中没有存储指定字节数的足够空间。public void unread(byte[] b) throws IOException
b[0]
,其后的字节将具有值 b[1]
,依次类推。
b
- 要推回的字节数组
IOException
- 如果推回缓冲区中没有存储指定字节数的足够空间。public int available() throws IOException
available
方法;它返回该值加上已被推回的字节数。
FilterInputStream
中的 available
IOException
- 如果发生 I/O 错误。FilterInputStream.in
,
InputStream.available()
public long skip(long n) throws IOException
n
个数据字节。skip
方法可能由于多种原因跳过一些较少数量的字节(可能为零)而结束。如果 n
为负数,则不跳过任何字节。
PushbackInputStream
的 skip
方法首先跳过推回缓冲区中的字节(如果存在)。如果需要跳过更多字节,接着它将调用基础输入流的 skip
方法。返回跳过的实际字节数。
FilterInputStream
中的 skip
n
- 要跳过的字节数。
IOException
- 如果发生 I/O 错误。FilterInputStream.in
,
InputStream.skip(long n)
public boolean markSupported()
mark
和 reset
方法以及不支持哪一个。
FilterInputStream
中的 markSupported
mark
和 reset
方法而返回 false
。InputStream.mark(int)
,
InputStream.reset()
public void mark(int readlimit)
PushbackInputStream
的 mark
方法不执行任何操作。
FilterInputStream
中的 mark
readlimit
- 在标记位置变得无效前可以读取字节的最大限制。InputStream.reset()
public void reset() throws IOException
mark
方法时的位置。
除了抛出 IOException
之外,类 PushbackInputStream
的方法 reset
不执行任何操作。
FilterInputStream
中的 reset
IOException
- 如果调用此方法。InputStream.mark(int)
,
IOException
public void close() throws IOException
Closeable
中的 close
FilterInputStream
中的 close
IOException
- 如果发生 I/O 错误。FilterInputStream.in
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。