例如:
- 我使用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);
所以我的问题是:
-
接收器是否正确读取了字节[]?
-
使用writeObject和readUTF的String怎么样?
信息:
-
我只能使用Java库(JRE8),并且是Java的Stream新手 .
-
除了知道他们没有使用ObjectInput / OutputStream之外,我无法指望或强迫对方使用Stream
-
我问了这个问题,因为使用ObjectInput / OutputStream可以为我节省一些工作,我接受了我的其他question的建议 .
1 回答
没有 .
没有 .
如果使用
ObjectOutputStream.writeObject
进行写入,则读取流的唯一实用方法是使用ObjectOutputStream.readObject
.从理论上讲,您可以自己编写代码来实现serialization protocol(使用byte或"data"输入流),但这不是一种明智/实用的方法 .
无论你在编写时使用什么格式,你都会强迫另一端使用能够读取它的东西 . 强制另一端(如果它是Java)使用ObjectInputStream不应该是一个问题 . 另一个问题是,如果另一端可以用另一种语言实现,那么你可能应该考虑像JSON或XML这样的编码方案 .