/**
* 读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码
* @param file
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void readZipCvsFile(File file) throws Exception {
//获得输入流,文件为zip格式,
//支付宝提供
//20886126836996110156_20160906.csv.zip内包含
//20886126836996110156_20160906_业务明细.csv
//20886126836996110156_20160906_业务明细(汇总).csv
ZipInputStream in = new ZipInputStream(new FileInputStream(file));
//不解压直接读取,加上gbk解决乱码问题
BufferedReader br = new BufferedReader(new InputStreamReader(in,"gbk"));
ZipEntry zipFile;
//循环读取zip中的cvs文件,无法使用jdk自带,因为文件名中有中文
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);
}
}
}
//关闭流
br.close();
in.close();
}
}