java流的奇怪行为

java流的奇怪行为,java,Java,我有必要在两个实例之间共享数据流,如下所示: // get EClasses which should be connected final uk.man.xman.xcore.Parameter source = getParameter(sourceAnchor); final uk.man.xman.xcore.Parameter target = getParameter(targetAnchor); // Set data channels //Ou

我有必要在两个实例之间共享数据流,如下所示:

// get EClasses which should be connected
    final uk.man.xman.xcore.Parameter source = getParameter(sourceAnchor);
    final uk.man.xman.xcore.Parameter target = getParameter(targetAnchor);

    // Set data channels

    //Output stream
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    DataOutputStream dataOutputStream = new DataOutputStream(new BufferedOutputStream(outputStream));
    source.setOutputStream(dataOutputStream);

    //Input stream
    DataInputStream inpuDataStream = new DataInputStream(new BufferedInputStream(new ByteArrayInputStream(outputStream.toByteArray())));
    target.setInputStream(inpuDataStream);
在这些代码行中,如果我写的话,一切都正常。奇怪的是,当我需要使用数据通道在另一个类中编写某些内容时,如下所示:

    DataOutputStream dataOutputStream = (DataOutputStream) inputParameter.getOutputStream();
            System.out.println("WRITE:" + attributes.getValue("value"));
            dataOutputStream.writeUTF(attributes.getValue("value"));
            dataOutputStream.flush();
我不会读书,我真的不知道为什么。我错过什么了吗


感谢您的时间

我不确定您的要求是否正确,但您正在创建一个从空字节数组读取的InputStream。这没有多大意义:

// create an Output stream that will write in memory
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
...

// transform what has been written to the output stream into a byte array. 
// Since othing has been written yet, outputStream.toByteArray() returns 
// an empty array
DataInputStream inpuDataStream = new DataInputStream(new BufferedInputStream(new ByteArrayInputStream(outputStream.toByteArray())));

欢迎使用StackOverflow,请创建一个。我明白你的意思,非常感谢你的回答。为了理解,有可能在两个实体之间创建一个流并在以后使用它吗?