我有一些非常大的整数数组,我想压缩。
但是这样做在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