2014-04-01 53 views
0

我想打开一个特定的文件并压缩它,并通过UDP发送压缩结果的字节数组。压缩文件并发送它而不保存压缩文件

现在我检查了java zip API,但它只能让我将压缩文件保存到计算机并再次打开并发送它会效率低下。

有没有办法做我所需要的,而无需编写我自己的压缩算法的实现?

回答

1

您可以将ZipOutputStream包围在ByteArrayOutputStream的周围,并从ByteArrayOutputStream中获取字节。 事情是这样的:?

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
ZipOutputStream zos = new ZipOutputStream(baos); 
//write the entries 
zos.close(); 
byte[] bytes = baos.toByteArray(); 
+0

你通过“写的条目”的意思,我不想结果写入文件 – omer12433

+0

我的意思写的zip文件的内容,你的情况您要压缩的文件的内容将成为条目。 – tibtof

+0

如果只需要压缩一个文件进行网络传输,那么'DeflaterOutputStream'可能会更好。 – bcrist