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构造可以解决这一问题。