【转载】用java压缩文件夹/文件
生活随笔
收集整理的這篇文章主要介紹了
【转载】用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(); } }轉載于:https://www.cnblogs.com/lan0725/archive/2011/03/10/1980097.html
總結
以上是生活随笔為你收集整理的【转载】用java压缩文件夹/文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的bolg,我的收获(MVC首次接触)
- 下一篇: c#初学12-12-为什么mian函数必