java.io

接口
异常
错误
java.lang.Object
  继承者 java.io.Reader
      继承者 java.io.FilterReader
          继承者 java.io.PushbackReader
所有已实现的接口:
Closeable, Readable

public class PushbackReader
     
extends FilterReader

允许将字符推回到流的字符流 reader。

从以下版本开始:
JDK1.1

字段摘要
 
从类 java.io.FilterReader 继承的字段
in
 
从类 java.io.Reader 继承的字段
lock
 
构造方法摘要
PushbackReader(Reader in)
          创建具有单字符推回缓冲区的新推回 reader。
PushbackReader(Reader in, int size)
          创建具有给定大小推回缓冲区的新推回 reader。
 
方法摘要
 void close()
          关闭该流并释放与之关联的所有系统资源。
 void mark(int readAheadLimit)
          标记流中的当前位置。
 boolean markSupported()
          判断此流是否支持 mark() 操作(它一定不支持)。
 int read()
          读取单个字符。
 int read(char[] cbuf, int off, int len)
          将字符读入数组的某一部分。
 boolean ready()
          判断是否准备读取此流。
 void reset()
          重置该流。
 long skip(long n)
          跳过字符。
 void unread(char[] cbuf)
          推回一个字符数组,方法是将其复制到推回缓冲区前面。
 void unread(char[] cbuf, int off, int len)
          推回字符数组的某一部分,方法是将其复制到推回缓冲区的前面。
 void unread(int c)
          推回单个字符:将其复制到推回缓冲区的前面。
 
从类 java.io.Reader 继承的方法
read, read
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

PushbackReader

public PushbackReader(Reader in,
                      int size)
创建具有给定大小推回缓冲区的新推回 reader。

参数:
in - 将从中读取字符的 reader
size - 推回缓冲区的大小
抛出:
IllegalArgumentException - 如果 size <= 0

PushbackReader

public PushbackReader(Reader in)
创建具有单字符推回缓冲区的新推回 reader。

参数:
in - 将从中读取字符的 reader
方法详细信息

read

public int read()
         throws IOException
读取单个字符。

覆盖:
FilterReader 中的 read
返回:
读取的字符,如果已到达流的末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误

read

public int read(char[] cbuf,
                int off,
                int len)
         throws IOException
将字符读入数组的某一部分。

覆盖:
FilterReader 中的 read
参数:
cbuf - 目标缓冲区
off - 开始写入字符处的偏移量
len - 要读取的最多字符数
返回:
读取的字符数,如果已到达流的末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误

unread

public void unread(int c)
            throws IOException
推回单个字符:将其复制到推回缓冲区的前面。在返回此方法后,要读取的下一个字符将具有值 (char)c

参数:
c - int 值,表示要被推回的字符
抛出:
IOException - 如果推回缓冲区已满,或者发生一些其他 I/O 错误

unread

public void unread(char[] cbuf,
                   int off,
                   int len)
            throws IOException
推回字符数组的某一部分,方法是将其复制到推回缓冲区的前面。在返回此方法后,要读取的下一个字符将具有值 cbuf[off],其后的字节将具有值 cbuf[off+1],依次类推。

参数:
cbuf - 字符数组
off - 要推回的第一个字符的偏移量
len - 要推回的字符数
抛出:
IOException - 如果推回缓冲区中没有足够的空间,或者发生一些其他 I/O 错误

unread

public void unread(char[] cbuf)
            throws IOException
推回一个字符数组,方法是将其复制到推回缓冲区前面。在返回此方法后,要读取的下一个字符将具有值 cbuf[0],其后的字节将具有值 cbuf[1],依次类推。

参数:
cbuf - 要推回的字符数组
抛出:
IOException - 如果推回缓冲区中没有足够的空间,或者发生一些其他 I/O 错误

ready

public boolean ready()
              throws IOException
判断是否准备读取此流。

覆盖:
FilterReader 中的 ready
返回:
如果保证下一个 read() 不阻塞输入,则返回 True,否则返回 false。注意,返回 false 并不保证阻塞下一次读取。
抛出:
IOException - 如果发生 I/O 错误

mark

public void mark(int readAheadLimit)
          throws IOException
标记流中的当前位置。类 PushbackReadermark 始终抛出异常。

覆盖:
FilterReader 中的 mark
参数:
readAheadLimit - 在仍保留该标记的情况下,对可读取字符数量的限制。在读取这样多的字符后,尝试重置流可能会失败。
抛出:
IOException - 始终抛出,原因是不支持标记功能

reset

public void reset()
           throws IOException
重置该流。 PushbackReaderreset 方法始终抛出异常。

覆盖:
FilterReader 中的 reset
抛出:
IOException - 始终抛出,原因是不支持重置功能

markSupported

public boolean markSupported()
判断此流是否支持 mark() 操作(它一定不支持)。

覆盖:
FilterReader 中的 markSupported
返回:
当且仅当此流支持此 mark 操作时,返回 true。

close

public void close()
           throws IOException
关闭该流并释放与之关联的所有系统资源。在关闭流后,再调用 read()、unread()、ready() 或 skip() 将抛出 IOException。关闭以前关闭的流无效。

指定者:
接口 Closeable 中的 close
覆盖:
FilterReader 中的 close
抛出:
IOException - 如果发生 I/O 错误

skip

public long skip(long n)
          throws IOException
跳过字符。在一些字符可用、发生 I/O 错误或者到达流的末尾前,此方法一直阻塞。

覆盖:
FilterReader 中的 skip
参数:
n - 要跳过的字符数
返回:
实际跳过的字符数
抛出:
IllegalArgumentException - 如果 n 为负。
IOException - 如果发生 I/O 错误