java编程思想(第2版)的例子中哪段代码是在做打包工作的?

youyiyang 2017-07-12 02:21:06
java编程思想(第2版)11章里面的运用Zip存储多份文件数据的例子,代码如下:

import java.io.*;
import java.util.*;
import java.util.zip.*;

public class ZipCompress {
public static void main(String[] args)
throws IOException
{
FileOutputStream f=
new FileOutputStream("test.zip");
CheckedOutputStream csum =
new CheckedOutputStream (
f, new Adler32()
);
ZipOutputStream out =
new ZipOutputStream (
new BufferedOutputStream(csum));
out.setComment("A test of Java Zipping");

for(int i = 0; i < args.length; i++){
System.out.println(
"Writing file " + args[i]
);
BufferedReader in =
new BufferedReader(
new FileReader(args[i]));
out.putNextEntry(new ZipEntry(args[i]));
int c;
while((c = in.read()) != -1)
out.write(c);
in.close();
}
out.close();

System.out.println("Checksum: " +
csum.getChecksum().getValue());

System.out.println("Reading file");
FileInputStream fi =
new FileInputStream("test.zip");
CheckedInputStream csumi =
new CheckedInputStream (
fi, new Adler32());
ZipInputStream in2 =
new ZipInputStream(
new BufferedInputStream(csumi));
ZipEntry ze;
while ((ze = in2.getNextEntry())!= null){
System.out.println("Reading file " + ze);
int x;
while((x = in2.read()) != -1)
System.out.write(x);
}
System.out.println("Checksum: " +
csumi.getChecksum().getValue());
in2.close();

ZipFile zf = new ZipFile("test.zip");
Enumeration e = zf.entries();
while(e.hasMoreElements()){
ZipEntry ze2 = (ZipEntry)e.nextElement();
System.out.println("File: " + ze2);
}
}
}


我没有看懂的是程序那段代码是在把多个文件进行Zip打包的?
谢谢赐教!
...全文
166 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
youyiyang 2017-07-13
  • 打赏
  • 举报
回复
引用 2 楼 MikeDDT009 的回复:
话说为什么要看这本书,而且还是第二版,最新的是第四版,第二版我我下载了个PDF发现里面的JDK版本还是1.3和1.4这两个版本,而目前只说JDK版本都是1.8,虽然据说实际运用还是1.7。第四版的话JDK版本是1.5和1.6这还是比较接近的。 入门一定不要看这本书,同样在学这个的表示相对会少点东西,而且这个时候看绝对一头雾水。比如switch语句1.7以后的版本的条件直接比较字符串,而之前都是没有的。而你这个第二版感觉略尴尬啊。
谢谢提醒!只怪我很早以前就买了这本书,但是一直没有看完,直到现在才知道Java基础的重要性,所以在重头学起。第二版的翻译是台湾的侯捷,我也看过第四版的部分,觉得还是第二版翻译的更加好点。
youyiyang 2017-07-13
  • 打赏
  • 举报
回复
引用 1 楼 soton_dolphin 的回复:

ZipInputStream in2 =
           new ZipInputStream(
               new BufferedInputStream(csumi));
         ZipEntry ze;
         while ((ze = in2.getNextEntry())!= null){
             System.out.println("Reading file " + ze);
             int x;
             while((x = in2.read()) != -1)
               System.out.write(x);
         }
         System.out.println("Checksum: " +
             csumi.getChecksum().getValue());
         in2.close();
          
         ZipFile zf = new ZipFile("test.zip");
         Enumeration e = zf.entries();
         while(e.hasMoreElements()){
            ZipEntry ze2 = (ZipEntry)e.nextElement();
            System.out.println("File: " + ze2);
         }

我感觉应该是前半段:

FileOutputStream f= 
             new FileOutputStream("test.zip");
         CheckedOutputStream csum =
             new CheckedOutputStream (
                f, new Adler32()
             );
         ZipOutputStream out =
             new ZipOutputStream (
                  new BufferedOutputStream(csum));
         out.setComment("A test of Java Zipping");
          
         for(int i = 0; i < args.length; i++){
             System.out.println(
                "Writing file " + args[i]
             );
             BufferedReader in =
                 new BufferedReader(
                    new FileReader(args[i]));
             out.putNextEntry(new ZipEntry(args[i]));
             int c;
             while((c = in.read()) != -1)
               out.write(c);
             in.close();
         }
         out.close();
MikeDDT009 2017-07-12
  • 打赏
  • 举报
回复
话说为什么要看这本书,而且还是第二版,最新的是第四版,第二版我我下载了个PDF发现里面的JDK版本还是1.3和1.4这两个版本,而目前只说JDK版本都是1.8,虽然据说实际运用还是1.7。第四版的话JDK版本是1.5和1.6这还是比较接近的。 入门一定不要看这本书,同样在学这个的表示相对会少点东西,而且这个时候看绝对一头雾水。比如switch语句1.7以后的版本的条件直接比较字符串,而之前都是没有的。而你这个第二版感觉略尴尬啊。
soton_dolphin 2017-07-12
  • 打赏
  • 举报
回复

ZipInputStream in2 =
           new ZipInputStream(
               new BufferedInputStream(csumi));
         ZipEntry ze;
         while ((ze = in2.getNextEntry())!= null){
             System.out.println("Reading file " + ze);
             int x;
             while((x = in2.read()) != -1)
               System.out.write(x);
         }
         System.out.println("Checksum: " +
             csumi.getChecksum().getValue());
         in2.close();
          
         ZipFile zf = new ZipFile("test.zip");
         Enumeration e = zf.entries();
         while(e.hasMoreElements()){
            ZipEntry ze2 = (ZipEntry)e.nextElement();
            System.out.println("File: " + ze2);
         }

62,614

社区成员

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

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