首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

运用java压缩一个文件夹中的任意几个文件

2012-11-08 
使用java压缩一个文件夹中的任意几个文件之前有人写过用递归压缩一个文件夹里的所有文件,看了让人受益匪浅

使用java压缩一个文件夹中的任意几个文件
之前有人写过用递归压缩一个文件夹里的所有文件,看了让人受益匪浅,
我这个程序没有那么复杂,但是在我现在的实际的项目中,根本不会用到压缩整个文件夹,需要选择文件来压缩,我就写了这个简单的小程序,贴出来大家分享吧。

package test;import java.util.ArrayList;import java.util.List;import java.util.zip.*;import java.io.*;/** *  * @author lIHUI * */public class MyZip {/** * 压缩一个文件到一个zip * @param in 输入的文件 * @param out 输出的zip名 * @param outEntry zip中的条目名 */public static  void zip(String in,ZipOutputStream out,String outEntry) {File inf = new File(in) ;FileInputStream ins;try {if(inf.exists()){ins = new FileInputStream(inf);out.putNextEntry(new ZipEntry(outEntry));int b ;while ((b = ins.read()) != -1) {out.write(b);}ins.close();}else{//按照项目的需要在没有的时候给予提示吧。System.out.println("系统找不到指定文件:"+in);}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e2) {e2.printStackTrace();} catch (Exception e3) {e3.printStackTrace();}}/** *  * @param out 输出的zip名 * @param in 输入的目录 * @param inEntrys 输入的条目集合 */public static  void zip(String out,String in,List<String> inEntrys) {try {OutputStream zipFileName_fileOutputStream = new FileOutputStream(out);ZipOutputStream zipOutputStream = new ZipOutputStream(zipFileName_fileOutputStream);for(String inEntry:inEntrys){zip(in+inEntry,zipOutputStream,inEntry);}zipOutputStream.close();} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {List<String> inEntrys=new ArrayList<String>();inEntrys.add("a.txt");inEntrys.add("b.txt");//可以加一个实际没有的文件试试inEntrys.add("xy.txt");zip("e:\\a.zip","e:\\a\",inEntrys);}}

热点排行