从输出流写入到输出流

4
我有一个输出流,客户端A正在向其中写入数据,我需要将其以字节块的形式转发到客户端B。
我想连接客户端A的输出流和客户端B的输出流,这是否可能?有哪些方法可以实现? 我不需要分叉/克隆,我只需要从流A中取出一些数据并将其移动到流B中(即数据不会留在流A中)。
注:A和B是进程,不能直接将客户端A的输出流提供给客户端B。 约束:内存有限。

好的...客户端B有一个输入流。我想这就是你误认为是客户端A的输出流的原因。 - user2651804
2
提供 http://stackoverflow.com/help/mcve 以获得快速答案。 - vels4j
客户端A和B是什么意思?它们是您程序中的单独线程、进程还是对象? - Dakshinamurthy Karra
A和B是进程。 - YAKOVM
听起来像是Linux上的tee命令,它将一个输出分叉成两个输出。搜索发现了一个Java Tee:https://github.com/apache/tomee/blob/master/container/openejb-core/src/main/java/org/apache/openejb/util/Tee.java - Joop Eggen
显示剩余3条评论
1个回答

7

尝试这种方法;它将写入“Hello world”的字节从“out”传输到“out2”,而不使用InputStream:

import java.io.ByteArrayOutputStream;

public class OutputStreamEx {

 public static void main(String[] args) {
    String content = "Hello world";
    byte[] bytes = content.getBytes();
    try {
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        out.write(bytes, 0, bytes.length);
        ByteArrayOutputStream out2 = new ByteArrayOutputStream();
        out.writeTo(out2);
        System.out.println(out2.toString());
     } catch (Exception ex) {
        ex.printStackTrace();
     }
  }
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接