將對象寫入ByteArrayOutputStream時,出現了一些奇怪的結果。期待writeObject(null)後的0個字節,而我找到5個字節,這是怎麼回事?
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.這裏發生了什麼?
你爲什麼期望零字節?如何在不使用任何字節的情況下傳輸對象引用值'null'?這個問題沒有開始有意義。 – EJP 2013-02-23 22:41:21