gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:47 25 4
gpt4 key购买 nike

例如:

  • 我使用 ObjectInput/OutputStream 通过 Socket outputStream 发送一个 byte[]:

    ObjectOutputStream myOutput = new ObjectOutputStream(mySocket.getOutputStream());
    myOutput.write(myByteArray);
  • 在另一端,他使用DataInputStream(也可能使用其他InputStream)读取:

    DataInputStream hisInput = new DataInputStream(hisSocket.getInputStream());
    hisInput.read(hisByteArray);

所以我的问题是:

  • 接收方能否正确读取 byte[]?
  • 使用 writeObject 和 readUTF 的 String 怎么样?

信息:

  • 我只能使用 Java 库 (JRE8),并且对 Java Stream 还不熟悉。
  • 除了知道对方没有使用 ObjectInput/OutputStream 之外,我不能期望或强制对方使用什么 Stream
  • 我问这个问题是因为使用 ObjectInput/OutputStream 可能会节省我一些工作,我听取了其他人的建议 question .

最佳答案

Will the receiver read the Byte[] correctly?

没有。

What about String using writeObject and readUTF?

没有。

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

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

<小时/>

I can not expect or force the other side to use what Stream other than knowing that they are not using ObjectInput/OutputStream

无论您在写入时使用什么格式,您都将迫使另一端使用能够读取它的格式。强制另一端(如果是 Java)使用 ObjectInputStream 不应该是一个问题。如果另一端可以用另一种语言实现则是另一回事,但是您可能应该考虑使用 JSON 或 XML 之类的东西作为您的编码方案。

关于Java - ObjectInput/OutputStream 与 DataInput/OutputStream 兼容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26550781/

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