已有101人关注
java从入门到精通问题15章压缩
发表在Java图书答疑 2011-05-12
是否精华
版块置顶:
运行结果:已终止Myzip,没有其他任何反馈,生成的压缩包显示已损坏为什么?
import java.io.*; //导入java.io包
import java.util.zip.*; //导入java.util.zip包
public class MyZip { //创建类
private void zip(String zipFileName, File inputFile) throws Exception {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
zipFileName)); //创建ZipOutputStream类对象
zip(out, inputFile, ""); //调用方法
System.out.println("压缩中…"); //输出信息
out.close(); //将流关闭
}
private void zip(ZipOutputStream out, File f, String base) throws Exception { //方法重载
if (f.isDirectory()) { //测试此抽象路径名表示的文件是否是一个目录。
File[] fl = f.listFiles(); //获取路径数组
out.putNextEntry(new ZipEntry(base + "/")); //写入此目录的entry
base = base.length() == 0 ? "" : base + "/"; //判断参数是否为空
for (int i = 0; i < fl.length; i++) { //循环遍历数组中文件
zip(out, fl[i], base + fl[i]);
}
} else {
out.putNextEntry(new ZipEntry(base)); //创建新的进入点
FileInputStream in = new FileInputStream(f); //创建FileInputStream对象
int b; //定义int型变量
System.out.println(base);
while ((b = in.read()) != -1) { //如果没有到达流的尾部
out.write(b); //将字节写入当前Zip条目
}
in.close(); //关闭流
}
}
public static void main(String[] temp) { //主方法
MyZip book = new MyZip (); //创建本例对象
try {
book.zip("E:/hello.zip", new File("E:/hello")); //调用方法,参数为压缩后文件与要压缩文件
System.out.println("压缩完成"); //输出信息
} catch (Exception ex) {
}
}
}
分享到:
精彩评论 3
绿草_mrkj
学分:0 LV1
2011-05-12
沙发
  你压缩的文件夹有多大,有可能是你的文件太大了导致的原因
yeshiyu
学分:0 LV1
TA的每日心情
2021-10-29 17:11:10
2011-05-14
板凳
这是例题啊 就两个文本很小的 怎么可能文件大呢
东北虎
学分:0 LV1
2011-05-24
地板
您好,请将要压缩的文件加上扩展名,然后再试试。
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照