日期:2014-05-20  浏览次数:21075 次

请问如何根据指定大小对文件进行ZIP压缩?急
我有一个文件,比如说是   10M,我想压缩成   1M一个的zip包,不足1M的时候按实际大小压缩。请问如何实现啊   ?

我写的部分代码如下,可是写出来的包不是错误的就是不可预料的文件末端。里面的内容也不对。
FileOutputStream   fo   =   null;
ZipUtils   zu   =   new   ZipUtils();
java.io.ByteArrayOutputStream   bo   =   null;

bo   =   new   java.io.ByteArrayOutputStream();
zu.setZipOutputStream(bo);

fo   =   new   FileOutputStream( "e:/test1.part1.zip ");
fo.write(bo.toByteArray(),   0,   30);
fo   =   new   FileOutputStream( "e:/test1.part2.zip ");
fo.write(bo.toByteArray(),   30,   bo.toByteArray().length-30);

------解决方案--------------------
upppppppp

还以为用winrar等工具呢。。
------解决方案--------------------
不足1M的时候按实际大小压缩,

如果超过1M呢??? 如何处理??
------解决方案--------------------
bo.toByteArray().length是整包的大小。我的意思是把文件压缩成1M大小的一个包。最后一个包肯定是小于等于1M的包啦。如果bo.toByteArray().length本身就不到1M,那就按实际大小压缩了
------解决方案--------------------
如果要控制压缩比例的话,恐怕楼主要自己写压缩算法了。。。。
正常的压缩,要不就用java zipOutputStream来做。。。
------解决方案--------------------
有谁做过这方面的吗?急啊 ,都整了好几天了
------解决方案--------------------
up一下
------解决方案--------------------
帮你顶下吧,
------解决方案--------------------
晕,LZ是要分N个包来干.
这个算法只有自己些了...
------解决方案--------------------
up
------解决方案--------------------
估计你是ZipUtils未正确使用造成的。这个东西不熟悉。