자바로 폴더/파일 압축

3036 단어 java 압축
폴더 코드 압축하기
import java.io.File;

import org.apache.tools.zip.ZipOutputStream; //    ant.jar ,       

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.util.zip.ZipInputStream;

import java.util.zip.ZipEntry;



public class CompressBook {



/**//*

* inputFileName        

* zipFileName          

*/

public void zip(String inputFileName) throws Exception {

    String zipFileName = "C:\\temp\\"; //       

    if(com.turbocms.tools.Config.Debug.equals("true"))System.out.println(zipFileName);

    zip(zipFileName, new File(inputFileName));

}

public void zipOfName(String inputFileName,String zipFileName) throws Exception {

    zip(zipFileName, new File(inputFileName));

}



private void zip(String zipFileName, File inputFile) throws Exception {

    ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));

    zip(out, inputFile, "");

    if(com.turbocms.tools.Config.Debug.equals("true"))System.out.println("zip done");

    out.close();

}



private void zip(ZipOutputStream out, File f, String base) throws Exception {

    if (f.isDirectory()) {

       File[] fl = f.listFiles();

       out.putNextEntry(new org.apache.tools.zip.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 org.apache.tools.zip.ZipEntry(base));

       FileInputStream in = new FileInputStream(f);

       int b;

       if(com.turbocms.tools.Config.Debug.equals("true"))System.out.println(base);

       while ( (b = in.read()) != -1) {

        out.write(b);

     }

     in.close();

   }

}



public static void main(String [] temp){

    CompressBook book = new CompressBook();

    try {

      // book.zip("E:\\temp\\pes\\temp\\115411B78AF6F2CDD513393FB8F0A8C6");//        

    }catch (Exception ex) {

       ex.printStackTrace();

   }

}

}


파일 압축
 
import java.io.*;

import java.util.zip.*;//ZipOutputStream      

import java.util.*;



public class ZipOutputStreamTest

{

     public static void main(String[] args) throws Exception

     {

       File f = new File("a.jpg");

       FileInputStream fis = new FileInputStream(f);

       BufferedInputStream bis = new BufferedInputStream(fis);

       byte[] buf = new byte[1024];

       int len;

       FileOutputStream fos = new FileOutputStream(f.getName()+".zip");

       BufferedOutputStream bos = new BufferedOutputStream(fos);

       ZipOutputStream zos = new ZipOutputStream(bos);//   

       ZipEntry ze = new ZipEntry(f.getName());//           

       zos.putNextEntry(ze);//     ZIP                   



       while((len=bis.read(buf))!=-1)

       {

          zos.write(buf,0,len);

          zos.flush();

       }

       bis.close();

       zos.close(); 

     }

}

좋은 웹페이지 즐겨찾기