您的位置:首页 > 编程语言 > Java开发

用java压缩文件夹/文件

2008-09-22 19:55 344 查看
用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

{




public CompressBook()

{}






/**//*


* inputFileName 输入一个文件夹


* zipFileName 输出一个压缩文件夹


*/




public void zip(String inputFileName) throws Exception

{


String zipFileName = "c://test.zip"; //打包后文件名字


System.out.println(zipFileName);


zip(zipFileName, new File(inputFileName));


}






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

{


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


zip(out, inputFile, "");


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;


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("c://c");//你要压缩的文件夹




}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();


}


}
posted on 2007-08-24 00:33 陈东 阅读(647) 评论(3) 编辑 收藏 所属分类: Java基础


//Sys.WebForms.PageRequestManager._initialize('AjaxHolder$scriptmanager1', document.getElementById('Form1'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tAjaxHolder$UpdatePanel1'], [], [], 90);
//]]>

评论

# re: 用java压缩文件夹/文件[未登录] 2007-11-10 14:36 ad
不错 谢谢了 回复 更多评论


# re: 用java压缩文件夹/文件 2008-01-27 22:54
试过,真不错,谢谢了. 回复 更多评论


# re: 用java压缩文件夹/文件 2008-06-23 18:49 flymz
我用java.util.zip.ZipOutputStream;这个包也可以压缩! 回复 更多评论
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: