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("創(chuàng)建目錄 " + 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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 南陵县| 四会市| 宣汉县| 香港 | 孟津县| 隆昌县| 苏州市| 通州区| 长乐市| 三河市| 涟源市| 衡东县| 博白县| 邢台市| 晋城| 云浮市| 平谷区| 陵水| 三台县| 天等县| 禹州市| 渑池县| 金溪县| 长海县| 连云港市| 长治县| 准格尔旗| 内黄县| 湖南省| 武宣县| 石城县| 东乡| 成都市| 额尔古纳市| 阿拉善右旗| 德钦县| 翼城县| 凤凰县| 永善县| 镇沅| 化德县|