`

java 读取网络ZipInputStream 中 Zipentry 文本文件

    博客分类:
  • java
阅读更多

在读取网络文件中的文件时有可能是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()读取文件内容。

 

 

分享到:
评论

相关推荐

    使用java代码替换zip内的文件.docx

    有些时候需要替换zip内的文件。 网上的办法大多是——先解压,然后对解压目录替换文件,最后再重新压缩。该办法需要比较繁琐,且需要一个临时目录。 于是想找无需解压的方案。 后来找到利用 ZipInputStream、...

    JDK ZipEntry压缩中文文件名乱码解决

    项目中碰到问题.jdk zipEntry 压缩中文文件名乱码  上网查了下,有两种方法,一种修改jdk ZipInputStream及ZipOutputStream 的源文件,比较麻烦,不建议此项.  第二种 就是拿来主义,因为 开源项目 Ant 里已经有...

    java 支持中文解压:一行代码解决 java.util.zip.ZipInputStream 中文乱码;--文件处理通用类

    1、文件解压zip通用机制方法、一行代码支持中文; 2、一行代码解决 java.util.zip.ZipInputStream 中文乱码; 3、删除指定路径内的所有文件通用机制方法;

    Java实现文件的压缩和解压

    基于GUI用IO流中的ZipOutputStream ,ZipInputStream实现文件的解压与压缩, 如文件解压函数如下 private void unZip(String zipFileName, String outputDirectory)throws Exception { InputStream in=null; ...

    ZipInputStream解压有中文名报错问题解决

    对jdk内置的zip解压缩存在bug 如果zip文件里有中文文件,会报错 现在把这个问题解决。

    JAVA文件压缩与解压缩的设计与实现(源代码+论文)

    ZIP是一种较为常见的压缩形式,在Java中要想实现ZIP的压缩需要导入java.util.zip包,可以使用此包中的ZipFile、ZipOutputStream、ZipInputStream、ZipEntry几个类完成。 ZipOutputStream 实现文件的压缩 ...

    java实现文件解压缩,ZipInputStream,ZipOutputStream

    java实现文件解压缩,ZipInputStream,ZipOutputStream

    java压缩文件源码--ZipUtils

    // 设置压缩文件入口entry,为被读取的文件创建压缩条目 File tempFile = new File(fileArray[i].toString()); String rootStr = file.getPath(); String entryStr = null; // entry以相对路径的...

    java 压缩类的用法

    压缩的实现比较容易,下面介绍利用ZipEntry、ZipInputStream和ZipOutputStream三个Java 类实现zip数据压缩方式的编程方法。  zip压缩文件结构:一个zip文件由多个entry组成,每个entry有一个唯一的名称,entry的 ...

    利用Java实现zip压缩/解压缩

    Java 1.1实现了I/O数据流与网络数据流的单一接口,因此数据的压缩、网络传输和解 压缩的实现比较容易,下面介绍利用ZipEntry、ZipInputStream和ZipOutputStream三个Java 类实现zip数据压缩方式的编程方法。...

    java后台解压压缩文件

    前端上传ZIP压缩文件 使用 ZipInputStream 来解压至指定目录中.

    文件压缩与解压

    可以实现文件的压缩和解压 ZipFile zipInputStream ZipEntry zipOutputStream

    解决java压缩、解压缩含中文字符的文件或文件夹问题

    通过对JDK的java.util.zip下的ZipInputStream和ZipOutputStream类进行改造,彻底解决压缩和解压缩文件时的中文文件名乱码问题。 包含已大好的jar包,以及一个如何使用的Demo程序。

    java文件压缩和解压 源码

    java中通过ZipOutputStream和ZipInputStream实现了zip压缩和解压功能。java源码————资源共享,一起进步。

    基于JAVA的文件压缩与解压缩实践(源代码+论文)

    在解压缩方面,代码使用了ZipInputStream类,实现了对ZIP文件的解压缩操作,能够将ZIP文件中的内容还原成原始文件。 论文部分则详细阐述了基于Java的文件压缩与解压缩实践的设计思路、实现过程以及所采用的技术。...

    利用Java实现zip压缩解压缩

    Java 1.1实现了I/O数据流与网络数据流的单一接口,因此数据的压缩、网络传输和解压缩的实现比较容易,本文介绍利用ZipEntry、 ZipInputStream和ZipOutputStream三个Java 类实现zip数据压缩方式的编程方法。

    java实现文件夹的解压和压缩

    效果 实现多个文件以及文件夹的压缩和解压 代码分析 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文件 带进度条

    C# WPF 解压缩7zip文件 带进度条 sevenzipsharp WPF PNG实现的图形进度条 .NET 3.5 vs2013打开 来这里看介绍 http://www.cnblogs.com/xe2011/p/3761870.html

    zip4j.jar包下载 包含zip4j-2.9.0版本和zip4j-1.3.1版本的j两个jar包,亲试均可用

    从zip文件中创建、添加、提取、更新和删除文件 支持流(ZipInputStream和ZipOutStream) 读/写受密码保护的zip文件和流 ...在zip中支持Unicode文件名和注释 进度监视器-用于集成到应用程序和面向用户的应用程序中

    zip压缩大全

    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 ...

Global site tag (gtag.js) - Google Analytics