为了账号安全,请及时绑定邮箱和手机立即绑定

压缩文件,解压缩文件

标签:
Java

//压缩文件```
package test;

import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class ZipTxtFiles {

public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub
    File root = new File("E:\\新建文件夹");
    File target = new File("E:\\新建文件夹.zip");
    File[] txtFiles = root.listFiles(new FileFilter() {
        @Override
        public boolean accept(File pathname) {
            if (pathname.getName().endsWith(".txt")) {
                return true;
            }
            return false;
        }
    });
    FileOutputStream fos = null;
    ZipOutputStream zos = null;
    FileInputStream fis = null;
    try {
        fos = new FileOutputStream(target);
        zos = new ZipOutputStream(fos);
        byte[] buffer=new byte[1024];
        for (File txtFile : txtFiles) {
            ZipEntry entry = new ZipEntry(txtFile.getName());
            fis=new FileInputStream(txtFile);
            zos.putNextEntry(entry);
            int read=0;
            while((read=fis.read(buffer))!=-1) {
                zos.write(buffer, 0, read);
            }
            zos.closeEntry();
            if(fis!=null) {
                fis.close();
            }
        }
    } catch (FileNotFoundException e) {
        // TODO: handle exception
        e.printStackTrace();
    } catch (IOException e) {
        // TODO: handle exception
        e.printStackTrace();
    } finally {
        if(fis!=null) {
            try {
                fis.close();
            } catch (IOException e2) {
                // TODO: handle exception
                e2.printStackTrace();
            }
        }
        if(zos!=null) {
            try {
                zos.close();
            } catch (IOException e2) {
                // TODO: handle exception
                e2.printStackTrace();
            }
        }
        if(fos!=null) {
            try {
                fos.close();
            } catch (IOException e2) {
                // TODO: handle exception
                e2.printStackTrace();
            }
        }
    }
}

}

//解压缩文件
package test;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;

public class UnzipTxtFiles {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    File root = new File("E:\\新建文件夹.zip");
    File target = new File("E:\\新建文件夹");
    if(!target.exists())
        target.mkdir();
    ZipFile zf=null;
    try {
        zf=new ZipFile(root);
        Enumeration<? extends ZipEntry> e=zf.entries();
        while (e.hasMoreElements()) {
            ZipEntry entry = (ZipEntry) e.nextElement();
            if(!entry.getName().endsWith(".txt"))
                continue;
            File currentFile=new File(target+File.separator+entry.getName());
            if(!currentFile.exists()) 
                currentFile.createNewFile();
            FileOutputStream fos=new FileOutputStream(currentFile);
            InputStream in=zf.getInputStream(entry);
            int buffer=0;
            while ((buffer=in.read())!=-1) {
                fos.write(buffer);
            }
            in.close();
            fos.close();
        }
    } catch (ZipException e) {
        // TODO: handle exception
        e.printStackTrace();
    } catch (IOException e) {
        // TODO: handle exception
        e.printStackTrace();
    } finally {
        if(zf!=null) {
            try {
                zf.close();
            } catch (IOException e) {
                // TODO: handle exception
                e.printStackTrace();
            }
        }

    }
}

}

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消