Module java.base
Package java.io

Class PushbackReader

所有已实现的接口:
Closeable, AutoCloseable, Readable

public class PushbackReader extends FilterReader
一个字符流读取器,允许将字符推回流中。
自 JDK 版本:
1.1
  • Field Summary

    Fields declared in class java.io.FilterReader

    in

    Fields declared in class java.io.Reader

    lock
  • Constructor Summary

    Constructors
    Constructor
    Description
    创建一个具有一个字符推回缓冲区的新推回读取器。
    PushbackReader(Reader in, int size)
    创建一个具有给定大小推回缓冲区的新推回读取器。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    close()
    关闭流并释放与其关联的任何系统资源。
    void
    mark(int readAheadLimit)
    标记流中的当前位置。
    boolean
    告知此流是否支持 mark() 操作,它不支持。
    int
    read()
    读取单个字符。
    boolean
    ready()
    告知此流是否准备好进行读取。
    void
    reset()
    重置流。
    void
    unread(char[] cbuf)
    通过将字符数组复制到推回缓冲区的前面,将字符数组推回。
    void
    unread(char[] cbuf, int off, int len)
    通过将字符数组的一部分复制到推回缓冲区的前面,将字符数组的一部分推回。
    void
    unread(int c)
    通过将单个字符复制到推回缓冲区的前面,将单个字符推回。

    Methods declared in class java.io.FilterReader

    read, skip

    Methods declared in class java.io.Reader

    nullReader, read, read, transferTo

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PushbackReader

      public PushbackReader(Reader in, int size)
      创建一个具有给定大小推回缓冲区的新推回读取器。
      参数:
      in - 将从中读取字符的读取器
      size - 推回缓冲区的大小
      抛出:
      IllegalArgumentException - 如果 size <= 0
    • PushbackReader

      public PushbackReader(Reader in)
      创建一个具有一个字符推回缓冲区的新推回读取器。
      参数:
      in - 将从中读取字符的读取器
  • Method Details

    • read

      public int read() throws IOException
      读取单个字符。
      覆盖:
      read 在类 FilterReader
      返回:
      读取的字符,如果已到达流的末尾则为 -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
      告知此流是否准备好进行读取。
      覆盖:
      ready 在类 FilterReader
      返回:
      如果下一个 read() 调用不会阻塞以等待输入,则返回 true,否则返回 false。请注意,返回 false 不保证下一个 read 将阻塞。
      抛出:
      IOException - 如果发生 I/O 错误
    • mark

      public void mark(int readAheadLimit) throws IOException
      标记流中的当前位置。PushbackReader 类的 mark 方法始终会抛出异常。
      覆盖:
      mark 在类 FilterReader
      参数:
      readAheadLimit - 在保留标记的同时可以读取的字符数限制。读取此数量的字符后,尝试重置流可能会失败。
      抛出:
      IOException - 始终会抛出,因为不支持 mark
    • reset

      public void reset() throws IOException
      重置流。PushbackReader 类的 reset 方法始终会抛出异常。
      覆盖:
      reset 在类 FilterReader
      抛出:
      IOException - 始终会抛出,因为不支持 reset
    • markSupported

      public boolean markSupported()
      告知此流是否支持 mark() 操作,它不支持。
      覆盖:
      markSupported 在类 FilterReader
      返回:
      如果此流支持 mark 操作,则返回 true。
    • close

      public void close() throws IOException
      关闭流并释放与其关联的任何系统资源。一旦关闭流,进一步的 read()、unread()、ready() 或 skip() 调用将抛出 IOException。关闭先前关闭的流不会产生任何效果。在另一个线程阻塞在读取器上时,此方法将阻塞。
      指定者:
      close 在接口 AutoCloseable
      指定者:
      close 在接口 Closeable
      指定者:
      close 在类 Reader
      抛出:
      IOException - 如果发生 I/O 错误