public classPipeStreamTest {public static void main(String[] args) throwsIOException, InterruptedException {
WriteData writeData= newWriteData();
ReadData readData= newReadData();
PipedReader reader= newPipedReader();
PipedWriter writer= newPipedWriter();
writer.connect(reader);new Thread(() ->{
writeData.writeMethod(writer);
}).start();
Thread.sleep(2000);new Thread(() ->{
readData.readMethod(reader);
}).start();
}static classWriteData {public voidwriteMethod(PipedWriter writer) {try{
System.out.println("write :");for (int i = 0; i < 300; i++) {
String outData= "" + (i + 1);
writer.write(outData);
System.out.print(outData);
}
System.out.println();
writer.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}static classReadData {public voidreadMethod(PipedReader reader) {try{
System.out.println("read :");char[] byteArray = new char[20];int readLength =reader.read(byteArray);while (readLength != -1) {
String newData= new String(byteArray, 0, readLength);
System.out.print(newData);
readLength=reader.read(byteArray);
}
System.out.println();
reader.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}
}