javaboys

          壓縮和解壓縮文件

          /**
          ?* 壓縮和解壓縮文件
          ?*/
          import java.util.*;
          import java.util.zip.*;
          import java.io.*;

          public class Zip {
          ? public Zip(){}

          ? /**
          ?? * 壓縮目錄下的文件
          ?? * @param zipFileName
          ?? * @param inputFile 目錄
          ?? * @throws java.lang.Exception
          ?? */
          ? public void zip(String zipFileName, String inputFile) throws Exception {
          ??? zip(zipFileName, new File(inputFile));
          ? }

          ? /**
          ?? * 壓縮文件
          ?? * @param zipFileName
          ?? * @param inputFile 文件
          ?? * @throws java.lang.Exception
          ?? */
          ? public void zip(String zipFileName, File inputFile) throws Exception {
          ??? ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
          ??? zip(out, inputFile, "");
          ??? System.out.println("壓縮成功!");
          ??? out.close();
          ? }

          ? public void zip(ZipOutputStream out, File f, String base) throws Exception {
          ??? System.out.println("正在壓縮? " + f.getName());
          ??? if (f.isDirectory()) {
          ????? File[] fl = f.listFiles();
          ????? out.putNextEntry(new ZipEntry(base + "/"));
          ????? base = base.length() == 0 ? "" : base + "/";
          ????? for (int i = 0; i < fl.length; i++) {
          ??????? zip(out, fl[i], base + fl[i].getName());
          ????? }
          ??? }
          ??? else {
          ????? out.putNextEntry(new ZipEntry(base));
          ????? FileInputStream in = new FileInputStream(f);
          ????? int b;
          ????? while ( (b = in.read()) != -1)
          ??????? out.write(b);
          ????? in.close();
          ??? }

          ? }

          ? /**
          ?? * 解壓縮
          ?? * @param zipFileName
          ?? * @param outputDirectory 輸出目錄
          ?? * @throws java.lang.Exception
          ?? */
          ? public void unzip(String zipFileName, String outputDirectory) throws
          ????? Exception {
          ??? ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
          ??? ZipEntry z;
          ??? while ( (z = in.getNextEntry()) != null) {
          ????? System.out.println("正在解壓 " + z.getName());
          ????? if (z.isDirectory()) {
          ??????? String name = z.getName();
          ??????? name = name.substring(0, name.length() - 1);
          ??????? File f = new File(outputDirectory + File.separator + name);
          ??????? f.mkdir();
          ??????? System.out.println("創建目錄 " + outputDirectory + File.separator + name);
          ????? }
          ????? else {
          ??????? File f = new File(outputDirectory + File.separator + z.getName());
          ??????? f.createNewFile();
          ??????? FileOutputStream out = new FileOutputStream(f);
          ??????? int b;
          ??????? while ( (b = in.read()) != -1)
          ????????? out.write(b);
          ??????? out.close();
          ????? }
          ??? }

          ??? in.close();
          ? }

          ? public static void main(String[] args) {
          ??? try {
          ????? Zip t = new Zip();
          //????? t.zip("D:\\IdeaProjects.zip", "D:\\IdeaProjects");
          //????? t.unzip("d:\\ddd\\api.jar", "d:\\ddd\\");
          ??? }
          ??? catch (Exception e) {
          ????? e.printStackTrace(System.out);
          ??? }
          ? }
          }



          Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=127606


          posted on 2007-04-01 17:53 javaboys 閱讀(128) 評論(0)  編輯  收藏 所屬分類: java web


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 和龙市| 涿州市| 建湖县| 屏东县| 昭通市| 正阳县| 云林县| 河源市| 鄂伦春自治旗| 葫芦岛市| 玉溪市| 满城县| 龙胜| 页游| 高碑店市| 深圳市| 永兴县| 铅山县| 分宜县| 宁河县| 和静县| 堆龙德庆县| 盐池县| 济源市| 建德市| 保山市| 南皮县| 合江县| 长兴县| 九龙坡区| 望江县| 永宁县| 宜城市| 会东县| 龙岩市| 湘阴县| 富民县| 札达县| 定襄县| 鄂尔多斯市| 孙吴县|