我有一些非常大的整數數組,我想壓縮。
但是這樣做在Java中的方法是使用這樣的事情 -壓縮java中的整數數組
int[] myIntArray;
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(1024);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new DeflaterOutputStream(byteArrayOutputStream));
objectOutputStream.writeObject(myIntArray);
注意,int數組首先需要通過Java的轉換爲字節。 現在我知道速度很快,但它仍然需要創建一個全新的字節數組,並掃描整個原始int數組,將其轉換爲字節並將值複製到新的字節數組中。
有什麼辦法可以跳過字節轉換,並立即壓縮整數?
你的int數組被轉換爲字節在哪裏? ObjectOutputStream接受你的對象並直接序列化它。 DeflaterOutputStream壓縮序列化結果,然後壓縮結果存儲在ByteArrayOutputStream中。我認爲這正是你想要發生的...... – Stobor 2009-07-03 23:20:37
在我的情況下,我想壓縮的對象是一個int []數組。 序列化過程將其轉換爲字節,這是我想要跳過的步驟。 – pdeva 2009-07-04 01:11:07