java解析zip文件(无需解压即可解析)

个人原创博客:德鲁大叔撸代码

对zip文件直接进行解析(一条记录对应一行数据)

public  void readZipCvsFile(File file) throws Exception {
        //获得输入流,文件为zip格式,
        //zip可以包含对个文件,如果只有一个文件,则只解析一个文件的,包含多个文件则分别解析
        ZipInputStream in = new ZipInputStream(new FileInputStream(file));
        //不解压直接读取,加上gbk解决乱码问题
        BufferedReader br = new BufferedReader(new InputStreamReader(in,"utf-8"));
        ZipEntry zipFile;
        //循环读取zip中的cvs/txt文件,zip文件名不能包含中文
        while ((zipFile=in.getNextEntry())!=null) {
            //如果是目录,不处理
            if (zipFile.isDirectory()){
                System.err.println("当前路径为目录:"+zipFile.getName());
            }
            //获得cvs名字
            String fileName = zipFile.getName();
            //检测文件是否存在
            if (fileName != null && fileName.indexOf(".") != -1) {
                System.out.println("---------------------开始解析文件:"+fileName+"-----------------------------");
                String line;
                while ((line = br.readLine()) != null) {
                    System.out.println(line);
                }
            }
        }
        //关闭流
        br.close();
        in.close();
    }

测试方法

public static void main(String[] args) throws Exception {
        File file = new File("D:\\zip\\test.zip");
        MainService mainService = new MainService();
        mainService.readZipCvsFile(file);
}
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值