也許有人可以幫助我理解,因爲我覺得我錯過了一些可能會影響我的程序運行效果的東西。爲什麼ByteArrayOutputStream使用int?
我正在使用ByteArrayOutputStream。除非我錯過了一些巨大的東西,這個類的重點是創建一個byte []數組用於其他用途。
但是,BAOS上的「簡單」寫入函數不是一個字節的int(ByteArrayOutputStream.write)。
根據這個(Primitive Data Types)頁面,在Java中,int是一個32位數據類型,一個字節是一個8位數據類型。
如果我寫這篇文章的代碼...
int i = 32;
byte b = i;
我得到一個關於需要改變這種可能有損轉換警告...
int i = 32;
byte b = (byte)i;
我真的很困惑寫( int)...
請注意,這是'OutputStream.write'確定此,不是真的'ByteArrayOutputStream'。 –
Yep ByteArrayOutputStream非常受限於它的父類。 –
使用'byte'數據類型除了'byte []'的形式以外,可以說是一個壞主意。 「短」,恕我直言,也是如此。認爲字節和短是必要的邪惡,這只是讓你閱讀和編寫奇怪的二進制數據格式。不要使用字節/短變量,方法參數或返回類型。 (不,你不會以任何實質性的方式節省空間(除非是罕見的情況),而且你的代碼實際上可能會變慢。) – Ingo