本人买了一本Java从入门到精通书籍,学到zip压缩和解压这部分,发现按照书上的代码会出现问题,无法完成压缩和解压缩

首先是压缩原文代码:

public static void zip(String outputname,String filename) throws IOException{
File f=new File(filename);
ZipOutputStream out=new ZipOutputStream(new FileOutputStream(outputname));
zip(out,f,“”);
out.close();
}

public static  void zip(ZipOutputStream out,File f,String base) throws IOException{
if(f.isDirectory()){
File[] files=f.listFiles();
//out.putNextEntry(new ZipEntry(base+"/"));
base=(base.length()==0)?"":base+"/";
for(int i=0;i<files.length;i++){
zip(out,files[i],base+files[i].getName());
}
}else{
out.putNextEntry(new ZipEntry(base));
FileInputStream in=new FileInputStream(f);
//BufferedInputStream bi=new BufferedInputStream(in);
int b;
System.out.println(base);
while(( b=in.read())!=-1){

out.write(b);
}
//bi.close();
in.close();
}
}

画删除线的代码是出错部分,在找入口点的时候,应该把当前的文件即getName()传过去

这是能实现该玩的代码

public static void zip(String outputname,String filename) throws IOException{
File f=new File(filename);
ZipOutputStream out=new ZipOutputStream(new FileOutputStream(outputname));
zip(out,f,f.getName());
out.close();
}

解压缩,书中根本就没实现。。按书中的代码能解压,但解压出来文件全成了文件夹

修正代码:

public static void  dezip(String inputName,String deZipPath){
ZipInputStream zin;
try{
zin=new ZipInputStream(new FileInputStream(inputName));
ZipEntry entry;
while((entry=zin.getNextEntry())!=null){
if(entry.isDirectory()) continue;
File f=new File(deZipPath+entry.getName());
System.out.println(f.getAbsolutePath());
if(!f.exists()){
System.out.println(f.getParentFile());
//要是该文件的上级文件夹进行创建
(new File(f.getParent())).mkdirs();  
f.createNewFile();
}
int b;
if(f.isFile()){
FileOutputStream out=new FileOutputStream(f);
while((b=zin.read())!=-1){
out.write(b);
}
out.close();
}

zin.closeEntry();
}
zin.close();
}catch(Exception e){
e.printStackTrace();
}

}

菜鸟一只,第一篇博客!

JAVA从入门到精通书中ZIP压缩和解压缩错误修正相关推荐

  1. java ant解压缩_java ant包中的org.apache.tools.zip实现压缩和解压缩实例详解

    java ant包中的org.apache.tools.zip实现压缩和解压缩实例详解 发布于 2020-4-7| 复制链接 摘记: java ant包中的org.apache.tools.zip实现 ...

  2. Java 的zip压缩和解压缩

    Java 的zip压缩和解压缩 好久没有来这写东西了,今天中秋节,有个东西想拿出来分享,一来是工作中遇到的问题,一来是和csdn问候一下,下面就分享一个Java中的zip压缩技术,代码实现比较简单,代 ...

  3. java putnextentry_Java对zip格式压缩和解压缩

    Java对zip格式压缩和解压缩 通过使用java的相关类可以实现对文件或文件夹的压缩,以及对压缩文件的解压. 1.1 ZIP和GZIP的区别 gzip是一种文件压缩工具(或该压缩工具产生的压缩文件格 ...

  4. java.util.zip_[Java 基础] 使用java.util.zip包压缩和解压缩文件

    Java API中的import java.util.zip.*;包下包含了Java对于压缩文件的所有相关操作. 我们可以使用该包中的方法,结合IO中的相关知识,进行文件的压缩和解压缩相关操作. Zi ...

  5. Java用ZIP格式压缩和解压缩文件

    转载:java jdk实例宝典 感觉讲的很好就转载在这保存! java.util.zip包实现了Zip格式相关的类库,使用格式zip格式压缩和解压缩文件的时候,需要导入该包. 使用zipoutputs ...

  6. Linux中的压缩和解压缩命令zip|tar

    一. zip 1. 使用zip压缩文件 若使用zip来将文件夹a压缩为a.zip,那么它的语法应该为 语法:zip -q -r [压缩文件名] [被压缩文件或文件夹] 示例:zip -q -r a.z ...

  7. zip格式压缩和解压缩(支持中文和文件嵌套解压缩)

    我在公司项目过程需要用到zip文件的压缩与解压的功能,于是自己研究了一下,找了一些,自己写了一个压缩和解压缩的代码,支持中文,可以文件嵌套(注意其中所用的类是ant.jar中的包中的类,我用的是1.6 ...

  8. linux zip压缩包大小,Linux中巧用zip命令压缩和解压缩文件

    在Windows中,我们用得最多的解压缩软件就是WinRAR了,这个软件对我们实现解压缩非常方便.但是如果在Linux系统中,我们还可以尝试用命令来实现对文件的解压缩,这篇文章主要介绍在Linux中用 ...

  9. Java使用winrar压缩和解压缩文件

    Java使用winrar压缩和解压缩文件 2015-08-17| 发布: | 浏览: 740 |保存PDF Winrar可以使用命令行进行压缩和解压缩,如: 将D:/aa.doc 压缩为:aa.rar ...

最新文章

  1. python爬取贴吧所有帖子-python爬取贴吧帖子
  2. python排序函数set_【Python】排列组合itertools 集合set
  3. 红帽linux5安装Oracle 9i enterprise
  4. 数据产品经理进阶之路
  5. OpenJudge NOI 1.4 20:求一元二次方程的根
  6. Flask 蓝图机制及应用
  7. bootstrap中如何使input中的小图标获得点击事件
  8. python计算三角函数的计算器_一个工具箱 之 三角函数计算器
  9. “汽车人”眼中的网络安全-网络安全的5W1H
  10. 用JavaScript时钟特效
  11. 小企业怎样选择服务器和操作系统
  12. FTX交易平台与AZA Finance达成合作,推动非洲数字经济发展
  13. ShellExecuteEX打开iqy文件导致excel hang的原因分析
  14. java currency 默认_Java Currency.equals方法代码示例
  15. JXLS导出Excel表格实战教程
  16. Web大学生网页作业成品 基于HTML+CSS+JavaScript-----苹果商城Apple商城 8页 三级带视频
  17. 迅捷音频转换器怎么使用? 1
  18. Matlab:将日期时间转换为儒略日期或 POSIX 时间
  19. .net Core 6.0 部署到欧拉(Linux)系统上,“The type initializer for ‘Gdip‘ threw an exception” 报错的解决方案
  20. VUE中使用Antv.X6实现将侧边导航栏节点拖拽到画布中,并能够将画布保存到缓存中

热门文章

  1. 设置idea启动内存参数
  2. Matlab/Python nc格式小时数据转日期
  3. 工薪阶层买房八大实用秘笈
  4. 虚拟机VM16版本提示开启虚拟化,进入Bios发现是开启的
  5. java万年历 视频,万年历.java
  6. 《2022-2023中国人工智能计算力发展评估报告》发布
  7. PHP实现平台商品和京东价格做对比
  8. UI 如何制作配色色卡
  9. 什么高大填空四个字动人_高大怎么填空四个字
  10. 雷观(四):手机不可能取代电脑