您的位置:首页 > 其它

读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码(支付宝对账单为例)

2016-09-12 21:17 1236 查看
读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码(还是以支付宝对账单为例)

zipUtil下载地址:http://download.csdn.net/detail/myfmyfmyfmyf/9628853

package com;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;

import com.zipUtil.ZipEntry;
import com.zipUtil.ZipInputStream;

/**
*
*
* @author muyunfei
*
* <p>Modification History:</p>
* <p>QQ       Author      Description</p>
* <p>------------------------------------------------------------------</p>
* <p>1147417467           牟云飞       		 新建</p>
*/
public class TestMain {

public static void main(String[] args) throws IOException {
TestMain demo = new TestMain();
File file = new File("G:/20886126836996110156_20160909.csv.zip");
try {
demo.readZipCvsFile(file);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 读取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();
}
}


参考链接:http://cache.baiducontent.com/c?m=9d78d513d99b12eb0bfa950e454d95711925971538c0a61768a5e45fe2624f060738ece161645213d2b6617a49ea1702a0b12172405866e0d09f9f4aaaeacf7732d8796925018c4411d31dad&p=8b2a9715d9c041af05abc828520e8c&newp=837fc54ad5c341eb0fb4d02d021480231610db2151d4d7156b82c825d7331b001c3bbfb423231003d5c277610aaf485fecf236713d092ba3dda5c91d9fb4c57479cc706d34&user=baidu&fm=sc&query=javazip+%D6%D0%CE%C4&qid=eb9b456000006e88&p1=1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐