gpt4 book ai didi

java - 管道流。我可以传递复杂的对象吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:46:07 24 4
gpt4 key购买 nike

我研究 Java I/O。现在我正在阅读有关管道的内容。

我写了最简单的代码示例:

PipedInputStream pipedInputStream = new PipedInputStream();
PipedOutputStream pipedOutputStream = new PipedOutputStream();

pipedOutputStream.connect(pipedInputStream);

pipedOutputStream.write(new byte[]{1});
System.out.println(pipedInputStream.read());

我有以下问题。据我了解-在现实生活中传递字节是很奇怪的。

是否真的要扩展此示例以传递整个字符串?

最佳答案

是的。用 ObjectInputStream 装饰它和 ObjectOutputStream .

PipedOutputStream pipedOutputStream = new PipedOutputStream();
PipedInputStream pipedInputStream = new PipedInputStream();

pipedInputStream.connect(pipedOutputStream);

ObjectOutputStream objectOutputStream = new ObjectOutputStream(pipedOutputStream);
ObjectInputStream objectInputStream = new ObjectInputStream(pipedInputStream);

objectOutputStream.writeObject("Hello world!");
String message = (String)objectInputStream.readObject();

System.out.println(message);

有关装饰模式和专门针对 Java I/O 流装饰的更多信息,您可以在 StackOverFlow Post 中找到

顺便说一句,确保在 ObjectInputStream 之前启动 ObjectOutputStream,并使用 connect 连接管道。创建对象输入/输出流之前的方法。
原因如下:http://frequal.com/java/OpenObjectOutputStreamFirst.html

关于java - 管道<I/O>流。我可以传递复杂的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24477648/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com