服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

调整javatm 的i/o性能(三)(zt)


  压缩


java提供了对字节流进行压缩和解压缩的类。它们可以在java.util.zip包中被找到,同时也作为jar文件的基 础(jar文件是具有一个清单的zip文件)。


以下的程序采用一个单一的输入文件,并且生成一个压缩了的zip输出文件,该程序带有一个表示输入文件的 入口项。


      import java.io.*;

      import java.util.zip.*;



      public class compress {

          public static void doit(string filein, string fileout) {

              fileinputstream fis = null;

              fileoutputstream fos = null;

              try {

                  fis = new fileinputstream(filein);

                  fos = new fileoutputstream(fileout);

                  zipoutputstream zos = new zipoutputstream(fos);

                  zipentry ze = new zipentry(filein);

                  zos.putnextentry(ze);

                  final int bufsiz = 4096;

                  byte inbuf[] = new byte[bufsiz];

                  int n;

                  while ((n = fis.read(inbuf)) != -1)

                      zos.write(inbuf, 0, n);

                  fis.close();

                  fis = null;

                  zos.close();

                  fos = null;

              }

              catch (ioexception e) {

                  system.err.println(e);

              }

              finally {

                  try {

                      if (fis != null)

                          fis.close();

                      if (fos != null)

                          fos.close();

                  }

                  catch (ioexception e) {

                  }

              }

          }



          public static void main(string args[]) {

              if (args.length != 2) {

                  system.err.println("missing filenames");

                  system.exit(1);

              }

              if (args[0].equals(args[1])) {

                  system.err.println("filenames are identical");

                  system.exit(1);

              }

              doit(args[0], args[1]);

          }

      }

下一个程序正好相反,采用假定只有一个入口项的zip输入文件,并且将该项解压到指定的输出文件:


      import java.io.*;

      import java.util.zip.*;



      public class uncompress {

          public static void doit(string filein, string fileout) {

              fileinputstream fis = null;

              fileoutputstream fos = null;

              try {

                  fis = new fileinputstream(filein);

                  fos = new fileoutputstream(fileout);

                  zipinputstream zis = new zipinputstream(fis);

                  zipentry ze = zis.getnextentry();

 &n

扫描关注微信公众号