鸿蒙OS PipedReader
PipedReader
java.lang.Object
|---java.io.Reader
|---|---java.io.PipedReader
public class PipedReader
extends Reader
管道字符输入流。
Since:
JDK1.1
字段摘要
从类 java.io.Reader 继承的字段 |
---|
lock |
构造函数摘要
构造函数 | 描述 |
---|---|
PipedReader() | 创建一个 PipedReader 以便它尚未连接。 |
PipedReader(int pipeSize) | 创建一个 PipedReader 以便它尚未连接并使用指定的管道大小作为管道缓冲区。 |
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.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
从类 java.io.Reader 继承的方法 |
---|
mark, markSupported, read, read, reset, skip |
构造函数详细信息
PipedReader
public PipedReader(PipedWriter src) throws IOException
创建一个 PipedReader 以便它连接到管道编写器 src。 然后,写入 src 的数据将可用作此流的输入。
参数:
参数名称 | 参数描述 |
---|---|
src | 要连接的流。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
PipedReader
public PipedReader(PipedWriter src, int pipeSize) throws IOException
创建一个 PipedReader 以便它连接到管道写入器 src 并为管道缓冲区使用指定的管道大小。 然后,写入 src 的数据将可用作此流的输入。
参数:
参数名称 | 参数描述 |
---|---|
src | 要连接的流。 |
pipeSize | 管道缓冲区的大小。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
IllegalArgumentException | 如果 pipeSize <= 0. |
Since:
1.6
PipedReader
public PipedReader()
创建一个 PipedReader 以便它尚未连接。 在使用之前,它必须连接到 PipedWriter。
PipedReader
public PipedReader(int pipeSize)
创建一个 PipedReader 以便它尚未连接并使用指定的管道大小作为管道缓冲区。 在使用之前,它必须连接到 PipedWriter。
参数:
参数名称 | 参数描述 |
---|---|
pipeSize | 管道缓冲区的大小。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果 pipeSize <= 0. |
Since:
1.6
方法详情
connect
public void connect(PipedWriter src) throws IOException
导致此管道读取器连接到管道写入器 src。 如果此对象已连接到其他管道写入器,则会引发 IOException。
如果 src 是一个未连接的管道写入器,而 snk 是一个未连接的管道读取器,它们可以通过以下任一调用连接:
snk.connect(src)
或调用:
src.connect(snk)
这两个调用具有相同的效果。
参数:
参数名称 | 参数描述 |
---|---|
src | 要连接的管道编写器。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
read
public int read() throws IOException
从此管道流中读取数据的下一个字符。 如果由于到达流的末尾而没有可用的字符,则返回值 -1。 此方法会一直阻塞,直到输入数据可用、检测到流结束或引发异常。
覆盖:
read in class Reader
返回:
数据的下一个字符,如果到达流的末尾,则为 -1。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果管道损坏、未连接、关闭或发生 I/O 错误。 |
read
public int read(char[] cbuf, int off, int len) throws IOException
从此管道流中读取最多 len 个字符的数据到字符数组中。 如果到达数据流的末尾或 len 超过管道的缓冲区大小,则将读取小于 len 的字符。 此方法会阻塞,直到至少有一个输入字符可用。
指定者:
在课堂阅读器中阅读
参数:
参数名称 | 参数描述 |
---|---|
cbuf | 读取数据的缓冲区。 |
off | 数据的起始偏移量。 |
len | 读取的最大字符数。 |
返回:
读入缓冲区的字符总数,如果由于到达流的末尾而没有更多数据,则为 -1。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果管道损坏、未连接、关闭或发生 I/O 错误。 |
ready
public boolean ready() throws IOException
判断此流是否已准备好被读取。 如果循环缓冲区不为空,则管道字符流已准备就绪。
覆盖:
ready in class Reader
返回:
如果保证下一个 read() 不会阻塞输入,则为 true,否则为 false。 请注意,返回 false 并不能保证下一次读取将阻塞。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果管道损坏、未连接或关闭。 |
close
public void close() throws IOException
关闭此管道流并释放与该流关联的任何系统资源。
指定者:
在接口 AutoCloseable 中关闭
指定者:
在接口Closeable中关闭
指定者:
close in class Reader
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |