读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码(支付宝对账单为例)
2016-09-12 21:17
1236 查看
读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码(还是以支付宝对账单为例)
zipUtil下载地址:http://download.csdn.net/detail/myfmyfmyfmyf/9628853
参考链接: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
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
相关文章推荐
- 读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码
- 解决Java原生压缩组件不支持中文文件名乱码的问题
- 使Serv-U支持中文目录名中文文件名并解决中文乱码
- ServU7不支持中文名的解决办法(Serv-U中文目录和文件名变乱码问题)
- 解决Android4.3版本下,手机短彩接收中文文件名附件,中文名字的附件无法保存(第二步:解决从从数据库中读取附件文件名,并在长按后保存附件时,中文乱码导致的无法保存附件)
- [Java代码]Java中压缩与解压--中文文件名乱码解决办法
- 工作总结11 压缩文件里面的中文文件名读取乱码问题解决方案
- Java中ZIP压缩与解压--中文文件名乱码解决办法
- java压缩zip文件中文乱码问题解决方法
- 用c#读取文件内容中文是乱码的解决方法:
- Java中压缩与解压--中文文件名乱码解决办法
- 不解压的情况下直接读取压缩包内容(压缩包中有的文件名含中文)
- 使Serv-U支持中文目录名中文文件名并解决中文乱码
- Java中压缩与解压--中文文件名乱码解决办法
- cocos2d-x:读取指定目录下的文件名+解决中文乱码(win32下有效)
- 解决windows传送到linux下中文文件名及文件内容乱码问题
- 【JDK ZipEntry压缩中文文件名乱码解决】
- ios中Mini zip开源工程ZipArchive,压缩中文文件名乱码问题【解决】
- Java中ZIP压缩与解压--中文文件名乱码解决办法
- Java ZIP压缩和解压缩文件(解决中文文件名乱码问题)