- java.lang.Object
-
- java.io.Reader
-
- java.io.FilterReader
-
- java.io.PushbackReader
-
- 实现的所有接口
-
Closeable
,AutoCloseable
,Readable
public class PushbackReader extends FilterReader
字符流阅读器,允许将字符推回到流中。- 从以下版本开始:
- 1.1
-
-
字段汇总
-
声明的属性在类 java.io.FilterReader
in
-
-
构造方法摘要
构造方法 构造器 描述 PushbackReader(Reader in)
创建一个带有单字符回送缓冲区的新推回读取器。PushbackReader(Reader in, int size)
使用给定大小的回送缓冲区创建一个新的回推读取器。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 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
nullReader, read, read, transferTo
-
-
-
-
构造方法详细信息
-
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
- 结果
- 当且仅当此流支持标记操作时才返回true。
-
close
public void close() throws IOException
关闭流并释放与其关联的所有系统资源。 关闭流后,进一步的read(),unread(),ready()或skip()调用将抛出IOException。 关闭先前关闭的流无效。 当读取器上有另一个线程阻塞时,此方法将阻塞。- Specified by:
-
close
,界面AutoCloseable
- Specified by:
-
close
在界面Closeable
- Specified by:
-
close
类Reader
- 异常
-
IOException
- 如果发生I / O错误
-
skip
public long skip(long n) throws IOException
跳过字符。 此方法将阻塞,直到某些字符可用,发生I / O错误或到达流的末尾。- 重写:
-
skip
类FilterReader
- 参数
-
n
- 要跳过的字符数 - 结果
- 实际跳过的字符数
- 异常
-
IllegalArgumentException
- 如果n
为负数。 -
IOException
- 如果发生I / O错误
-
-