|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.io
类 PushbackInputStream
java.lang.Object java.io.InputStream java.io.FilterInputStream java.io.PushbackInputStream
- 所有已实现的接口:
- Closeable
-
public class PushbackInputStream
- extends FilterInputStream
PushbackInputStream
向另一个输入流添加“推回 (push back)”或“取消读取 (unread)”一个字节的功能。这在以下情况下非常有用,即代码片段可以很方便地读取由特定字节值分隔的不定数量的数据字节;在读取终止字节后,该代码片段可以“取消读取”该字节,这样,输入流上的下一个读取操作将会重新读取被推回的字节。例如,表示构成标识符的字符的字节可能由表示操作符字符的字节终止;其作业只是读取标识符的方法可以进行读取,直到该操作看到此操作符,然后将该操作符推回以进行重读。
- 从以下版本开始:
- JDK1.0
字段摘要 | |
---|---|
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 |
字段详细信息 |
---|
buf
protected byte[] buf
-
推回缓冲区。
- 从以下版本开始:
- JDK1.1
pos
protected int pos
-
推回缓冲区中的位置,从该位置将读取下一个字节。当该缓冲区为空时,
pos
将等于buf.length
;当该缓冲区为满时,pos
将等于零。- 从以下版本开始:
- JDK1.1
构造方法详细信息 |
---|
PushbackInputStream
public PushbackInputStream(InputStream in, int size)
-
使用指定
size
的推回缓冲区创建PushbackInputStream
,并保存其参数输入流in
,以便将来使用。最初,不存在推回字节(字段pushBack
被初始化为-1
)。- 参数:
-
in
- 从中读取字节的输入流。 -
size
- 推回缓冲区的大小。 - 抛出:
-
IllegalArgumentException
- 如果 size <= 0 - 从以下版本开始:
- JDK1.1
PushbackInputStream
public PushbackInputStream(InputStream in)
-
创建
PushbackInputStream
并保存其参数输入流in
,以便将来使用。最初,不存在推回字节(字段pushBack
被初始化为-1
)。- 参数:
-
in
- 从中读取字节的输入流。
方法详细信息 |
---|
read
public int read() throws IOException
-
从此输入流中读取下一个数据字节。返回
0
到255
范围内的int
字节值。如果因流的末尾已到达而没有可用的字节,则返回值-1
。在输入数据可用、检测到流的末尾或者抛出异常前,此方法一直阻塞。此方法返回最近推回的字节(如果存在),否则调用其基础输入流的
read
方法,并返回该方法返回的任何值。 -
- 覆盖:
-
类
FilterInputStream
中的read
-
- 返回:
-
下一个数据字节,如果到达流的末尾,则返回
-1
。 - 抛出:
-
IOException
- 如果发生 I/O 错误。 - 另请参见:
-
InputStream.read()
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)
unread
public void unread(int b) throws IOException
-
推回一个字节,方法是将其复制到推回缓冲区前面。在返回此方法后,要读取的下一个字节将具有值
(byte)b
。 -
- 参数:
-
b
- 要推回其低位字节的int
值。 - 抛出:
-
IOException
- 如果推回缓冲区中没有存储字节的足够空间。
unread
public void unread(byte[] b, int off, int len) throws IOException
-
推回字节数组的某一部分,方法是将其复制到推回缓冲区前面。在返回此方法后,要读取的下一个字节将具有值
b[off]
,其后的字节将具有值b[off+1]
,依次类推。 -
- 参数:
-
b
- 要推回的字节数组。 -
off
- 数据的初始偏移量。 -
len
- 要推回的字节数。 - 抛出:
-
IOException
- 如果推回缓冲区中没有存储指定字节数的足够空间。 - 从以下版本开始:
- JDK1.1
unread
public void unread(byte[] b) throws IOException
-
推回一个字节数组,方法是将其复制到推回缓冲区前面。在返回此方法后,要读取的下一个字节将具有值
b[0]
,其后的字节将具有值b[1]
,依次类推。 -
- 参数:
-
b
- 要推回的字节数组 - 抛出:
-
IOException
- 如果推回缓冲区中没有存储指定字节数的足够空间。 - 从以下版本开始:
- JDK1.1