将对象写入 ByteArrayOutputStream 时,我得到了一些奇怪的结果。
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream os = new ObjectOutputStream(baos);
os.writeObject(null);
byte[] objectBytes = baos.toByteArray();
int objectSize = objectBytes.length;
所以我将空值写入 ByteArrayOutputStream,然后当我从该流中检索字节而不是找到 0 个字节时,我发现有 5 个。字节的值如下 -
- [0] => -84
- [1] => -19
- [2] => 0
- [3] => 5
- [4] => 112
如果我更改os.writeObject(null)
为os.writeObject("A")
我得到 8 个字节,这些是 -
- [0] => -84
- [1] => -19
- [2] => 0
- [3] => 5
- [4] => 116
- [5] => 0
- [6] => 65
- [7] => 8
那么这里发生了什么,如果我写 0 个字节,我希望在检索字节数组时找到字节。然后我看到它增加了额外的 5 个字节。所以当我写“A”时,我希望它在字节数组中返回 6 个字节,但它返回 8。这是怎么回事?