Module java.base
Package java.io

Class PipedReader

java.lang.Object
java.io.Reader
java.io.PipedReader
所有已实现的接口:
Closeable, AutoCloseable, Readable

public class PipedReader extends Reader
管道字符输入流。
自从:
1.1
  • Constructor Details

    • PipedReader

      public PipedReader(PipedWriter src) throws IOException
      创建一个PipedReader,使其连接到管道写入器src。然后写入src的数据将作为此流的输入可用。
      参数:
      src - 要连接的流。
      抛出:
      IOException - 如果发生I/O错误。
    • PipedReader

      public PipedReader(PipedWriter src, int pipeSize) throws IOException
      创建一个PipedReader,使其连接到管道写入器src,并使用指定的管道大小作为缓冲区。然后写入src的数据将作为此流的输入可用。
      参数:
      src - 要连接的流。
      pipeSize - 管道缓冲区的大小。
      抛出:
      IOException - 如果发生I/O错误。
      IllegalArgumentException - 如果pipeSize <= 0
      自从:
      1.6
    • PipedReader

      public PipedReader()
      创建一个PipedReader,使其尚未连接。在使用之前,必须将其连接PipedWriter
    • PipedReader

      public PipedReader(int pipeSize)
      创建一个PipedReader,使其尚未连接,并使用指定的管道大小作为缓冲区。在使用之前,必须将其连接PipedWriter
      参数:
      pipeSize - 管道缓冲区的大小。
      抛出:
      IllegalArgumentException - 如果pipeSize <= 0
      自从:
      1.6
  • Method Details

    • connect

      public void connect(PipedWriter src) throws IOException
      导致此管道读取器连接到管道写入器src。如果此对象已连接到其他管道写入器,则会抛出IOException

      如果src是未连接的管道写入器,snk是未连接的管道读取器,则可以通过以下调用之一将它们连接:

          snk.connect(src)
      

      或者通过以下调用:

          src.connect(snk)
      

      这两个调用具有相同的效果。

      参数:
      src - 要连接的管道写入器。
      抛出:
      IOException - 如果发生I/O错误。
    • read

      public int read() throws IOException
      从此管道流中读取下一个数据字符。如果没有字符可用,因为已到达流的末尾,则返回值-1。此方法将阻塞,直到有输入数据可用,检测到流的末尾,或抛出异常。
      覆盖:
      read 在类中 Reader
      返回:
      下一个数据字符,如果已到达流的末尾,则返回-1
      抛出:
      IOException - 如果管道 broken未连接,关闭,或发生I/O错误。
    • read

      public int read(char[] cbuf, int off, int len) throws IOException
      将字符读入数组的一部分。此方法将阻塞,直到有输入可用,发生I/O错误,或到达流的末尾。

      如果len为零,则不会读取任何字符,并返回0;否则,将尝试读取至少一个字符。如果没有字符可用,因为流已到达末尾,则返回值-1;否则,将读取至少一个字符并存储到cbuf中。

      如果len超过管道的缓冲区大小,则将读取少于len个字符。

      指定者:
      read 在类中 Reader
      参数:
      cbuf - 目标缓冲区
      off - 开始存储字符的偏移量
      len - 要读取的最大字符数
      返回:
      读取的字符数,如果已到达流的末尾,则返回-1
      抛出:
      IndexOutOfBoundsException - 如果off为负,或len为负,或len大于cbuf.length - off
      IOException - 如果管道 broken未连接,关闭,或发生I/O错误。
    • ready

      public boolean ready() throws IOException
      告知此流是否准备好被读取。如果循环缓冲区不为空,则管道字符流已准备就绪。
      覆盖:
      ready 在类中 Reader
      返回:
      如果下一个read()保证不会因为没有输入而阻塞,则为true,否则为false。请注意,返回false并不保证下一个读取将阻塞。
      抛出:
      IOException - 如果管道 broken未连接,或关闭。
    • close

      public void close() throws IOException
      关闭此管道流并释放与该流关联的任何系统资源。
      指定者:
      close 在接口中 AutoCloseable
      指定者:
      close 在接口中 Closeable
      指定者:
      close 在类中 Reader
      抛出:
      IOException - 如果发生I/O错误。