Java PipedReader
PipedReader类用于以字符流的形式读取管道的内容。此类通常用于读取文本。
PipedReader类必须连接到相同的PipedWriter,并由不同的线程使用。
构造函数
构造函数 |
说明 |
PipedReader(int pipeSize) |
它将创建PipedReader,使其尚未连接,并使用指定的管道大小作为管道的缓冲区。 |
PipedReader(PipedWriter src) |
它将创建PipedReader,以便将其连接到管道编写器src。 |
PipedReader(PipedWriter src,int pipeSize) |
它将创建PipedReader,以便将其连接到管道编写器src,并将指定的管道大小用于管道的缓冲区。 |
PipedReader() |
它将创建PipedReader,以便尚未连接。 |
方法
修饰符和类型 |
方法 |
方法 |
void |
close() |
它关闭此管道流并释放与该流关联的所有系统资源。 |
void |
connect(PipedWriter src) |
这会使此管道读取器连接到管道写入器src。 |
int |
read() |
它从此管道流中读取数据的下一个字符。 |
int |
read(char [] cbuf,int off,int len) |
它从此管道流中最多读取len个字符的数据到array个字符中。 |
boolean |
ready() |
它告诉此流是否已准备好被读取。 |
示例
import java.io.PipedReader;
import java.io.PipedWriter;
public class PipeReaderExample2 {
public static void main(String[] args) {
try {
final PipedReader read = new PipedReader();
final PipedWriter write = new PipedWriter(read);
Thread readerThread = new Thread(new Runnable() {
public void run() {
try {
int data = read.read();
while (data != -1) {
System.out.print((char) data);
data = read.read();
}
}
catch (Exception ex) {
}
}
}
);
Thread writerThread = new Thread(new Runnable() {
public void run() {
try {
write.write("I love my country\n".toCharArray());
}
catch (Exception ex) {
}
}
}
);
readerThread.start();
writerThread.start();
}
catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
输出: