如何将数据写入两个java。木卫一。一次输出流对象?
我正在寻找神奇的Java类,它可以让我做如下事情:
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
FileOutputStream fileStream = new FileOutputStream(new File("/tmp/somefile"));
MultiOutputStream outStream = new MultiOutputStream(byteStream, fileStream);
outStream.write("Hello world".getBytes());
基本上,我希望Java中的OutputStream
使用tee
。有什么想法吗
谢谢
# 1 楼答案
我刚找到这条线,因为我必须面对同样的问题。 如果有人想查看我的解决方案(java7代码):
到目前为止工作正常,只是测试了一些基本操作,例如从系统设置多输出流。out Stream和2个PrintStreams各写入一个单独的日志。 我曾经
写入我的终端屏幕和两个工作正常的日志
# 2 楼答案
试试Apache Commons TeeOutputStream
# 3 楼答案
你自己滚吧,基本上没什么大不了的。使用
ArrayList<OutputStream>
或当今流行的任何方法来存储您想要的所有流,并编写write
方法来循环所有流,并对每个流进行写入# 4 楼答案
你自己滚吧。根本就没有什么魔力。使用Apache's TeeOutputStream基本上可以使用下面的代码。当然,使用ApacheCommons I/O库,您可以利用其他类,但有时为自己编写一些东西是很好的
使用上述类进行测试,并执行以下操作
将打印
Hello World!Hello World!
(注意:被重写的
close()
可能需要一些注意:# 5 楼答案