我有一个文件,比如说是 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未正确使用造成的。这个东西不熟悉。