// 字符输入流
class CharThreadReader extends Thread {
private PipedReader pipedReader;
public CharThreadReader(PipedReader pipedReader) {
this.pipedReader = pipedReader;
}
@Override
public void run() {
try {
char[] c = new char[] { 1024 * 3 };
int readLength = pipedReader.read(c);
while (readLength != -1) {
System.out.print(new String(c, 0, readLength));
readLength = pipedReader.read(c);
}
pipedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
根据文档
java.io.PipedReader.read() 方法从这个管道流中读取数据的下一个字符。如果没有字符可用,或流已到达末尾,则返回值-1。此方法一直阻塞在输入数据可用,该流的末尾被检测到,或者抛出一个异常。
读取多个字符的重载形式是
int java.io.PipedReader.read(char cbuf[], int off, int len)
分别是缓冲数组,偏移量,读取的长度。