- java.lang.Object
-
- java.io.Reader
-
- java.io.FilterReader
-
- java.io.PushbackReader
-
- All Implemented Interfaces:
-
Closeable,AutoCloseable,Readable
public class PushbackReader extends FilterReader
一个字符流读取器,允许将字符推回到流中。- 从以下版本开始:
- 1.1
-
-
Field Summary
-
Fields inherited from class java.io.FilterReader
in
-
-
构造方法摘要
构造方法 Constructor 描述 PushbackReader(Reader in)用一个字符的后置缓冲区创建一个新的推回阅读器。PushbackReader(Reader in, int size)使用给定大小的推回缓冲区创建一个新的推回阅读器。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 voidclose()关闭流并释放与之相关联的任何系统资源。voidmark(int readAheadLimit)标记流中的当前位置。booleanmarkSupported()告诉这个流是否支持mark()操作,它不是。intread()读一个字符intread(char[] cbuf, int off, int len)将字符读入数组的一部分。booleanready()告诉这个流是否准备好被读取。voidreset()重置流。longskip(long n)跳过字符voidunread(char[] cbuf)将一个字符数组复制回推回缓冲区的前端。voidunread(char[] cbuf, int off, int len)通过将一部分字符复制到推回缓冲区的前端来推回。voidunread(int c)将单个字符复制回推回缓冲区的前端。
-
-
-
构造方法详细信息
-
PushbackReader
public PushbackReader(Reader in, int size)
使用给定大小的推回缓冲区创建一个新的推回阅读器。- 参数
-
in- 从哪个角色读取的读者 -
size- 推回缓冲区的大小 - 异常
-
IllegalArgumentException- 如果是size <= 0
-
PushbackReader
public PushbackReader(Reader in)
用一个字符的后置缓冲区创建一个新的推回阅读器。- 参数
-
in- 从哪个角色读取的读者
-
-
方法详细信息
-
read
public int read() throws IOException读一个字符- 重写:
-
read在FilterReader - 结果
- 字符读取,如果已经达到流的结尾,则为-1
- 异常
-
IOException- 如果发生I / O错误
-
read
public int read(char[] cbuf, int off, int len) throws IOException将字符读入数组的一部分。- 重写:
-
read在FilterReader - 参数
-
cbuf- 目标缓冲区 -
off- 开始编写字符的偏移量 -
len- 要读取的最大字符数 - 结果
- 读取的字符数,如果已经达到流的结尾,则为-1
- 异常
-
IOException- 如果发生I / O错误 -
IndexOutOfBoundsException- 如果发生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告诉这个流是否准备好被读取。- 重写:
-
ready在FilterReader - 结果
- 如果下一个read()保证不阻止输入,则为True,否则为false。 请注意,返回false并不能保证下一次读取将被阻止。
- 异常
-
IOException- 如果发生I / O错误
-
mark
public void mark(int readAheadLimit) throws IOException标记流中的当前位置。mark的PushbackReader总是抛出异常。- 重写:
-
mark在FilterReader - 参数
-
readAheadLimit- 限制仍然保留标记时可能读取的字符数。 读了这么多字符后,尝试重置流可能会失败。 - 异常
-
IOException- 始终,因为不支持标记
-
reset
public void reset() throws IOException重置流。 该reset的方法PushbackReader总是抛出异常。- 重写:
-
reset在FilterReader - 异常
-
IOException- 始终,因为不支持重置
-
markSupported
public boolean markSupported()
告诉这个流是否支持mark()操作,它不是。- 重写:
-
markSupported在FilterReader - 结果
- 当且仅当此流支持标记操作时才为真。
-
close
public void close() throws IOException关闭流并释放与之相关联的任何系统资源。 一旦流已关闭,进一步的read(),unread(),ready()或skip()调用将抛出IOException。 关闭以前关闭的流无效。 当读取器上有另一个线程阻塞时,此方法将阻止。- Specified by:
-
close在接口AutoCloseable - Specified by:
-
close在接口Closeable - 重写:
-
close在FilterReader - 异常
-
IOException- 如果发生I / O错误
-
skip
public long skip(long n) throws IOException跳过字符 该方法将阻塞,直到某些字符可用,发生I / O错误或达到流的结尾。- 重写:
-
skip在FilterReader - 参数
-
n- 要跳过的字符数 - 结果
- 实际跳过的字符数
- 异常
-
IllegalArgumentException- 如果n为负数。 -
IOException- 如果发生I / O错误
-
-