请问如何根据指定大小对文件进行ZIP压缩?急

starsoulxp 2007-04-11 05:24:21
我有一个文件,比如说是 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);
...全文
701 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
starsoulxp 2007-04-12
  • 打赏
  • 举报
回复
up
chszs 2007-04-12
  • 打赏
  • 举报
回复
估计你是ZipUtils未正确使用造成的。这个东西不熟悉。
hyper_net 2007-04-11
  • 打赏
  • 举报
回复
晕,LZ是要分N个包来干.
这个算法只有自己些了...
frilly 2007-04-11
  • 打赏
  • 举报
回复
帮你顶下吧,
starsoulxp 2007-04-11
  • 打赏
  • 举报
回复
up一下
starsoulxp 2007-04-11
  • 打赏
  • 举报
回复
有谁做过这方面的吗?急啊 ,都整了好几天了
zhuokai 2007-04-11
  • 打赏
  • 举报
回复
如果要控制压缩比例的话,恐怕楼主要自己写压缩算法了。。。。
正常的压缩,要不就用java zipOutputStream来做。。。
starsoulxp 2007-04-11
  • 打赏
  • 举报
回复
bo.toByteArray().length是整包的大小。我的意思是把文件压缩成1M大小的一个包。最后一个包肯定是小于等于1M的包啦。如果bo.toByteArray().length本身就不到1M,那就按实际大小压缩了
iwlk 2007-04-11
  • 打赏
  • 举报
回复
不足1M的时候按实际大小压缩,

如果超过1M呢??? 如何处理??
yeah920 2007-04-11
  • 打赏
  • 举报
回复
upppppppp

还以为用winrar等工具呢。。

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧