首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java - ObjectInput/OutputStream与DataInput/OutputStream兼容吗?

Java - ObjectInput/OutputStream与DataInput/OutputStream兼容吗?
EN

Stack Overflow用户
提问于 2014-10-24 15:07:39
回答 1查看 171关注 0票数 1

例如:

  • 我使用ObjectInput/ outputStream在套接字上发送byte[] OutputStream: ObjectOutputStream(mySocket.getOutputStream());ObjectOutputStream myOutput = myOutput.write(myByteArray);
  • 在另一端,他使用DataInputStream (也可以使用其他InputStream )阅读: DataInputStream hisInput =新DataInputStream(hisSocket.getInputStream());hisInput.read(hisByteArray);

所以我的问题是:

  • 接收器能正确读取byte[]吗?
  • 那么使用writeObject和readUTF的字符串呢?

信息:

  • 我只能使用(JRE8),并且是Java流的新成员。
  • 除了知道对方没有使用ObjectInput/OutputStream之外,我不能期望或强迫对方使用什么流
  • 我问这个问题是因为使用ObjectInput/OutputStream可能会为我节省一些工作,我听取了其他问题的建议。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-24 15:17:18

接收器能正确读取Byte[]吗?

不是的。

那么使用writeObject和readUTF的字符串呢?

不是的。

如果使用ObjectOutputStream.writeObject编写,则读取流的唯一实用方法是使用ObjectOutputStream.readObject

理论上,您可以自己编写代码来实现串行化协议 (使用字节或“数据”输入流),但这不是一种明智/实用的方法。

除了知道对方没有使用ObjectInput/OutputStream之外,我不能期望或强迫对方使用什么流

无论你在写作时使用什么格式,你都会强迫另一端使用能够阅读它的东西。强迫另一端(如果是Java)使用ObjectInputStream不应该引起关注。如果另一端可以用另一种语言实现,则是另一回事了,但是您可能应该考虑像JSON或XML这样的编码方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26550781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档