Java IO:PipedWriter
JavaPipedWriter类(java.io.PipedWriter)使得有可能以字符流的形式写入Java管道。在这方面," PipedWriter"的工作方式与" PipedOutputStream"的工作方式非常相似,只是" PipedOutputStream"是基于字节的,而" PipedWriter"是基于字符的。换句话说,PipedWriter是用于编写文本的。
通常,Java" PipedWriter"连接到" PipedReader"。通常," PipedWriter"和" PipedReader"被不同的线程使用。
PipedWriter示例
这是一个简单的JavaPipedWriter示例:
PipedWriter pipedWriter = new PipedWriter();
while(moreData()) {
  int data = getMoreData();
  pipedWriter.write(data);
}
pipedWriter.close();
注意:为清楚起见,此处已跳过适当的异常处理。要了解有关正确的异常处理的更多信息,请转到Java IO异常处理。
write()
PipedWriter的write()方法采用一个int,该int包含要写入的字节的字节值。还有一些write()方法的版本,它们带有String,char数组等。
Java IO管道
" PipedWriter"必须始终连接到" PipedReader"。当这样连接时,它们形成一个Java管道。要了解有关Java管道的更多信息,请转到Java IO:管道。
关闭PipedWriter
完成将字符写入JavaPipedWriter后,我们应该记住将其关闭。关闭PipedWriter是通过调用其close()方法来完成的。这是关闭JavaPipedWriter的样子:
pipedWriter.close();
我们还可以使用Java 7中引入的try-with-resources构造。这是如何使用try-with-resources构造使用和关闭PipedWriter外观的方法:
try(PipedWriter pipedWriter =
    new PipedWriter(){
    pipedWriter.write("data 1");
    pipedWriter.write("data 2");
    pipedWriter.write("data 3");
}
注意,如何不再对PipedWriter实例进行任何显式的close()方法调用。 try-with-resources构造可以解决这一问题。

