java不解压查看zip内容_Java不解压直接读取.zip文件,支付宝核对帐单

在别人博客上看到要去改什么JDK的类或者换什么ant的jar包,其实是错的,在创建zip输入流的时候,给个字符集的参数

public static void main(String[] args) throws Exception {

CheckTheBill checkTheBill=new CheckTheBill();

File file = new File("E:\\workspace\\zh-oreo\\oreo-traffic\\downloads\\2018-08-10.zip");

checkTheBill.readZipCvsFile(file);

try {

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码

* @param file

* @throws Exception

*/

@SuppressWarnings("unchecked")

public void readZipCvsFile(File file) throws Exception {

//获得输入流,文件为zip格式,

//支付宝提供

//2018-08-10.zip内包含

//20881021722523470156_20180810_业务明细.csv

//20881021722523470156_20180810_业务明细(汇总).csv

ZipInputStream in = new ZipInputStream(new FileInputStream(file), Charset.forName("gbk"));//charset

//不解压直接读取,加上gbk解决乱码问题

BufferedReader br = new BufferedReader(new InputStreamReader(in,"gbk"));//gbk

ZipEntry zipFile;

//循环读取zip中的cvs文件,使用jdk自带就可以,编码格式gbk,

while ((zipFile=in.getNextEntry())!=null) {

if (zipFile.isDirectory()){

//如果是目录,不处理

}

//获得cvs名字

String fileName = zipFile.getName();

System.out.println("-----"+fileName);

//检测文件是否存在

if (fileName != null && fileName.indexOf(".") != -1) {

String line;

while ((line = br.readLine()) != null) {

System.out.println(line);

}

}

}

//File[] fs = new File("E:\\workspace\\zh-oreo\\oreo-traffic\\downloads\\2018-08-09-BusinessSummaryList").listFiles();

// for (File files : fs) {

// checkTheBill.readZipCvsFile(file);

// if (files.getAbsolutePath().contains("汇总")) {

// //Double money = ReadCsv.getMoney("", file.getAbsolutePath());

// }

// }

// 插入成功, 删除csv 文件

// for (File files : fs) {

// files.delete();

// }

//关闭流

br.close();

in.close();

}

import java.util.zip.ZipEntry;

import java.util.zip.ZipInputStream;

import java.io.*;

//去把jdk里的src.zip解压了就可以了

转载至链接:https://my.oschina.net/Skynet01/blog/1926375

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值