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,请创建一个。我明白你的意思,非常感谢你的回答。为了理解,有可能在两个实体之间创建一个流并在以后使用它吗?