- java.lang.Object
-
- java.io.Reader
-
- java.io.PipedReader
-
- 实现的所有接口
-
Closeable
,AutoCloseable
,Readable
public class PipedReaderextends Reader
管道字符输入流。- 从以下版本开始:
- 1.1
-
-
构造方法摘要
构造方法 构造器 描述 PipedReader()
创建一个PipedReader
,使它还不是 connected 。PipedReader(int pipeSize)
创建PipedReader
,使其尚未connected
,并使用指定的管道大小作为管道缓冲区。PipedReader(PipedWriter src)
创建一个PipedReader
以便它连接到管道src
。PipedReader(PipedWriter src, int pipeSize)
创建PipedReader
,使其连接到管道写入器src
并使用指定的管道大小作为管道缓冲区。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
close()
关闭此管道流并释放与该流关联的所有系统资源。void
connect(PipedWriter src)
使此管道读取器连接到管道写入器src
。int
read()
从此管道流中读取下一个数据字符。int
read(char[] cbuf, int off, int len)
从此管道流中读取最多len
个数据字符到一个字符数组中。boolean
ready()
判断此流是否可以读取。-
声明方法的类 java.io.Reader
mark, markSupported, nullReader, read, read, reset, skip, transferTo
-
-
-
-
构造方法详细信息
-
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
public PipedReader(int pipeSize)
创建PipedReader
,使其尚未connected
,并使用指定的管道大小作为管道缓冲区。 在使用之前必须是connected到PipedWriter
。- 参数
-
pipeSize
- 管道缓冲区的大小。 - 异常
-
IllegalArgumentException
- 如果pipeSize <= 0
。 - 从以下版本开始:
- 1.6
-
-
方法详细信息
-
connect
public void connect(PipedWriter src) throws IOException
使此管道读取器连接到管道src
。 如果此对象已连接到某个其他管道IOException
则会抛出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
,unconnected
, 已关闭,或者发生I / O错误。
-
read
public int read(char[] cbuf, int off, int len) throws IOException
从此管道流中读取最多len
个数据字符到一个字符数组中。 如果到达数据流末尾或者len
超过管道缓冲区大小,则将读取少于len
字符。 此方法将阻塞,直到输入的至少一个字符可用。- Specified by:
-
read
类Reader
- 参数
-
cbuf
- 读取数据的缓冲区。 -
off
- 数据的起始偏移量。 -
len
- 读取的最大字符数。 - 结果
- 读入缓冲区的字符总数,如果由于已到达流末尾而没有更多数据,
-1
。 - 异常
-
IOException
- 如果管道为broken
,unconnected
, 已关闭,或者发生I / O错误。 -
IndexOutOfBoundsException
- 如果发生I / O错误
-
ready
public boolean ready() throws IOException
判断此流是否可以读取。 如果循环缓冲区不为空,则准备好管道字符流。- 重写:
-
ready
类Reader
- 结果
- 如果保证下一个read()不阻止输入,则返回true,否则返回false。 请注意,返回false并不能保证下一次读取将被阻止。
- 异常
-
IOException
-如果管道是broken
,unconnected
,或关闭。
-
close
public void close() throws IOException
关闭此管道流并释放与该流关联的所有系统资源。- Specified by:
-
close
在界面AutoCloseable
- Specified by:
-
close
in interfaceCloseable
- Specified by:
-
close
类Reader
- 异常
-
IOException
- 如果发生I / O错误。
-
-