在读取网络文件中的文件时有可能是gzip tar zip格式的压缩文件,通常要直接通过网络读取第三方的数据,下面记录了一下使用ZipInputStream 中ZipEntry中的txt文件
HttpClient httpClient = new DefaultHttpClient(); HttpPost post = new HttpPost("https:// mobile/phone/download"); Map<String,String> poststr = new HashMap<String,String>(); poststr.put("param1", "1.0.2"); poststr.put("param2", "12345"); poststr.put("param3", "323f"); poststr.put("param4", "232323"); List<BasicNameValuePair> basicNameValuePairList = new ArrayList<BasicNameValuePair>(); for (Map.Entry<String, String> paramEntry : poststr.entrySet()) { basicNameValuePairList.add(new BasicNameValuePair(paramEntry.getKey(), paramEntry.getValue())); } post.setEntity(new UrlEncodedFormEntity(basicNameValuePairList, "UTF-8")); HttpRequestBase httpRequestBase = post; HttpResponse response = httpClient.execute(httpRequestBase); System.out.println(response.getStatusLine().getStatusCode()); String data = EntityUtils.toString(response.getEntity(), "utf-8"); System.out.println("====================="); System.out.println(data); int index = data.indexOf("aaa=111"); if (index < 0) { System.out.println("failed"); return ; } String[] datas = data.split("="); byte[] bytes = new BASE64Decoder().decodeBuffer(datas[3]); byte[] data1 = null; ByteArrayInputStream in; ZipInputStream zip; try { in = new ByteArrayInputStream(bytes); zip = new ZipInputStream(in); while (zip.getNextEntry() != null) { byte[] buf = new byte[1024]; int num = -1; ByteArrayOutputStream baos = new ByteArrayOutputStream(); while ((num = zip.read(buf, 0, buf.length)) != -1) { baos.write(buf, 0, num); } data1 = baos.toByteArray(); } System.out.println(new String(data1)); } catch (IOException e) { e.printStackTrace(); } finally { zip.close(); in.close(); }
上面仅供参考,由于是读取第三方系统的数据,不方便将所有的代码都贴出来
如果是本地的zip文件可以使用ZipFIle 读取文件,然后通过ZipFile的getInputstream()去获取流解析
流如果是文本文件可以直接使用Apach commons-Io包中IOUtils.toString()读取文件内容。
相关推荐
有些时候需要替换zip内的文件。 网上的办法大多是——先解压,然后对解压目录替换文件,最后再重新压缩。该办法需要比较繁琐,且需要一个临时目录。 于是想找无需解压的方案。 后来找到利用 ZipInputStream、...
项目中碰到问题.jdk zipEntry 压缩中文文件名乱码 上网查了下,有两种方法,一种修改jdk ZipInputStream及ZipOutputStream 的源文件,比较麻烦,不建议此项. 第二种 就是拿来主义,因为 开源项目 Ant 里已经有...
1、文件解压zip通用机制方法、一行代码支持中文; 2、一行代码解决 java.util.zip.ZipInputStream 中文乱码; 3、删除指定路径内的所有文件通用机制方法;
基于GUI用IO流中的ZipOutputStream ,ZipInputStream实现文件的解压与压缩, 如文件解压函数如下 private void unZip(String zipFileName, String outputDirectory)throws Exception { InputStream in=null; ...
对jdk内置的zip解压缩存在bug 如果zip文件里有中文文件,会报错 现在把这个问题解决。
ZIP是一种较为常见的压缩形式,在Java中要想实现ZIP的压缩需要导入java.util.zip包,可以使用此包中的ZipFile、ZipOutputStream、ZipInputStream、ZipEntry几个类完成。 ZipOutputStream 实现文件的压缩 ...
java实现文件解压缩,ZipInputStream,ZipOutputStream
// 设置压缩文件入口entry,为被读取的文件创建压缩条目 File tempFile = new File(fileArray[i].toString()); String rootStr = file.getPath(); String entryStr = null; // entry以相对路径的...
压缩的实现比较容易,下面介绍利用ZipEntry、ZipInputStream和ZipOutputStream三个Java 类实现zip数据压缩方式的编程方法。 zip压缩文件结构:一个zip文件由多个entry组成,每个entry有一个唯一的名称,entry的 ...
Java 1.1实现了I/O数据流与网络数据流的单一接口,因此数据的压缩、网络传输和解 压缩的实现比较容易,下面介绍利用ZipEntry、ZipInputStream和ZipOutputStream三个Java 类实现zip数据压缩方式的编程方法。...
前端上传ZIP压缩文件 使用 ZipInputStream 来解压至指定目录中.
可以实现文件的压缩和解压 ZipFile zipInputStream ZipEntry zipOutputStream
通过对JDK的java.util.zip下的ZipInputStream和ZipOutputStream类进行改造,彻底解决压缩和解压缩文件时的中文文件名乱码问题。 包含已大好的jar包,以及一个如何使用的Demo程序。
java中通过ZipOutputStream和ZipInputStream实现了zip压缩和解压功能。java源码————资源共享,一起进步。
在解压缩方面,代码使用了ZipInputStream类,实现了对ZIP文件的解压缩操作,能够将ZIP文件中的内容还原成原始文件。 论文部分则详细阐述了基于Java的文件压缩与解压缩实践的设计思路、实现过程以及所采用的技术。...
Java 1.1实现了I/O数据流与网络数据流的单一接口,因此数据的压缩、网络传输和解压缩的实现比较容易,本文介绍利用ZipEntry、 ZipInputStream和ZipOutputStream三个Java 类实现zip数据压缩方式的编程方法。
效果 实现多个文件以及文件夹的压缩和解压 代码分析 import java.io.File;...import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import java.util.zip.ZipOutputStream; public class Mai
C# WPF 解压缩7zip文件 带进度条 sevenzipsharp WPF PNG实现的图形进度条 .NET 3.5 vs2013打开 来这里看介绍 http://www.cnblogs.com/xe2011/p/3761870.html
从zip文件中创建、添加、提取、更新和删除文件 支持流(ZipInputStream和ZipOutStream) 读/写受密码保护的zip文件和流 ...在zip中支持Unicode文件名和注释 进度监视器-用于集成到应用程序和面向用户的应用程序中
157 ZipEntry = new ZipEntry(Path.GetFileName(FileToZip)); 158 ZipStream.PutNextEntry(ZipEntry); 159 ZipStream.SetLevel(6); 160 161 ZipStream.Write(buffer, 0, buffer.Length); 162 } 163 catch 164 { 165 ...