Zip打包原代码

本文提供了一个使用Java实现ZIP文件压缩的示例代码。该示例展示了如何将指定文件夹及其内容压缩成ZIP文件,并为ZIP文件添加注释。
<p>
</p>
<p>import java.io.BufferedInputStream;</p>
<p>import java.io.BufferedOutputStream;</p>
<p>import java.io.File;</p>
<p>import java.io.FileInputStream;</p>
<p>import java.io.FileOutputStream;</p>
<p>import java.text.ParseException;</p>
<p>import java.text.SimpleDateFormat;</p>
<p>import java.util.zip.Adler32;</p>
<p>import java.util.zip.CheckedOutputStream;</p>
<p>import java.util.zip.ZipEntry;</p>
<p>import java.util.zip.ZipOutputStream;</p>
<p></p>
<p>public class Zip {</p>
<p>public void ZipFiles(String file, String savepath) {</p>
<p><span> </span> try {</p>
<p><span> </span> File inFile = new File(file);</p>
<p><span> </span> FileOutputStream fout = new FileOutputStream(savepath);</p>
<p><span> </span> // 使用输出流检查</p>
<p><span> </span> CheckedOutputStream cs = new CheckedOutputStream(fout,new Adler32());</p>
<p><span> </span> // 声明输出zip流</p>
<p><span> </span> ZipOutputStream zout = new ZipOutputStream(new BufferedOutputStream(cs));</p>
<p><span> </span> // 写一个注释</p>
<p><span> </span> zout.setComment("This is the comment");</p>
<p><span> </span> zip(zout, inFile, "", cs);</p>
<p><span> </span> zout.close();</p>
<p><span> </span> } catch (Exception e) {</p>
<p><span> </span> System.err.println(e);</p>
<p><span> </span> }</p>
<p>}</p>
<p></p>
<p>private void zip(ZipOutputStream out, File inFile, String root,CheckedOutputStream cs) throws Exception {</p>
<p><span> </span> if (inFile.isDirectory()) {</p>
<p><span> </span> File[] files = inFile.listFiles();</p>
<p><span> </span> out.putNextEntry(new ZipEntry(root + "/"));</p>
<p><span> </span> root = root.length() == 0 ? "" : root + "/";</p>
<p><span> </span> for (int i = 0; i < files.length; i++) {</p>
<p><span> </span> zip(out, files[i], root + files[i].getName(), cs);</p>
<p><span> </span> }</p>
<p><span> </span> }else{</p>
<p><span> </span> BufferedInputStream in = new BufferedInputStream(new FileInputStream(inFile));</p>
<p><span> </span> out.putNextEntry(new ZipEntry(root));</p>
<p><span> </span> int c;</p>
<p><span> </span> while ((c = in.read()) != -1)</p>
<p><span> </span> out.write(c);</p>
<p><span> </span> in.close();</p>
<p><span> </span> // System.out.println("Checksum::" + cs.getChecksum().getValue());</p>
<p><span> </span> }</p>
<p>}</p>
<p></p>
<p>public static void main(String[] args){</p>
<p><span> </span> new Zip().ZipFiles("E://BAK","E://BAK.ZIP");</p>
<p><span> </span></p>
<p><span> </span> String a = "2010";</p>
<p><span> </span> SimpleDateFormat sdf = new SimpleDateFormat("yyyy");</p>
<p><span> </span></p>
<p><span> </span> try {</p>
<p><span> </span>System.out.println(sdf.parse(a));</p>
<p><span> </span>} catch (ParseException e) {</p>
<p><span> </span>// TODO Auto-generated catch block</p>
<p><span> </span>e.printStackTrace();</p>
<p><span> </span>}</p>
<p>}</p>
<p>}</p>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值