所有类


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()
          测试此输入流是否支持 markreset 方法以及不支持哪一个。
 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
从此输入流中读取下一个数据字节。返回 0255 范围内的 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

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部