`

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 —— jar读取自身图片和文本(.txt)文件(含源代码)

    要从JAR文件中读取文本文件,可以使用`java.util.jar.JarInputStream`或`java.util.zip.ZipInputStream`。以下是一个简单的示例,展示如何从JAR文件中读取一个名为`data.txt`的文本文件: ```java import java.io.*...

    JAVA FileOperate.zip_java_java zip_zip

    - **解压缩文件**:使用`ZipInputStream`可以从ZIP文件中读取`ZipEntry`。循环遍历`ZipInputStream`,为每个`ZipEntry`创建一个新的`FileOutputStream`,并将`ZipInputStream`的数据写入解压后的文件。 3. **`...

    (JAVA)利用Java实现zip压缩.解压缩.rar_decompress rar java_zip 压缩

    在Java编程语言中,我们可以利用内置的`java.util.zip`包来实现文件的压缩和解压缩功能。这个包提供了一系列的类,如`ZipOutputStream`用于创建ZIP压缩文件,`ZipInputStream`则用于读取和解压缩ZIP文件。在本教程中...

    Java读取android apk信息

    例如,我们可以使用`ZipInputStream`或`ZipFile`类来遍历APK中的所有文件。 接着,我们需要解析`AndroidManifest.xml`文件。由于它是一个XML文档,因此我们可以使用XML处理库。这里用到了两个库:jdom-2.0.2.jar和...

    新建 好压 ZIP 压缩文件.zip_java_zip

    你可以遍历ZIP文件中的所有条目(`ZipEntry`),然后使用`ZipInputStream`读取每个条目的数据。在CS61B作业场景中,学生可能需要使用此类来读取并检查他人的作业。 3. **ZipEntry**: 表示ZIP文件中的一个条目,可以...

    用java解压*.zip*.rar*.gz*.bz*.bz2等压缩文件含jar

    解压ZIP文件的基本步骤是创建一个`ZipInputStream`,然后遍历其`ZipEntry`,使用`BufferedInputStream`读取每个条目的内容,并将其写入目标文件。 ```java FileInputStream fis = new FileInputStream("path_to_zip...

    Java软件开发实战 Java基础与案例开发详解 13-11 zip文件流 共6页.pdf

    3. **ZIP文件流的关键类:** 本章节详细介绍了`java.util.zip`包中的三个关键类——`ZipEntry`、`ZipInputStream`和`ZipOutputStream`,并通过实例展示了它们的应用。 **详细知识点解析:** ### ZIP文件流的概念...

    java_zip.rar_java软件_压缩软件

    在Java中,`java.util.zip`包提供了处理ZIP文件格式的类和接口,包括`ZipOutputStream`用于创建ZIP文件,`ZipInputStream`用于读取ZIP文件,以及`ZipEntry`代表ZIP文件中的一个条目。 1. **Java ZIP API**: `java....

    Java解析pdf,zip,doc等格式文档

    例如,你可以使用ZipFile类打开ZIP文件,遍历其中的条目,然后用ZipEntry读取每个条目的内容。反之,如果需要创建ZIP文件,可以使用ZipOutputStream。 接着,我们来看DOC格式,这是Microsoft Word创建的文档格式。...

    Java解析apk所需jar包

    例如,`ZipInputStream`和`ZipEntry`类可以用来读取和遍历ZIP文件中的各个条目。要解析APK,我们需要打开APK文件,然后逐个读取并解析每个`ZipEntry`,这可能包括AndroidManifest.xml、资源文件、.dex(Dalvik字节码...

    zipper.zip_java zipper_java.util包_zip_遗传算法

    3. 将`ZipEntry`写入`ZipOutputStream`,然后使用`FileInputStream`读取原始文件的数据,并将其写入`ZipOutputStream`。 4. 在所有文件都添加到ZIP文件后,关闭`ZipOutputStream`。 遗传算法(Genetic Algorithm, ...

    java实验8[归类].pdf

    在Java的IO和压缩库中,通常会结合使用ZipInputStream和ZipEntry来遍历和提取ZIP文件中的内容。 实验内容要求编写一个Java应用程序,该程序能够读取包含汉字的文本文件,并在用户交互下显示汉字和播放相应的发音。...

    java实现的文件解压和压缩,没有中文编码问题

    在Java编程语言中,处理文件的压缩和解压缩是一项常见的任务。这个项目专注于解决一个常见的问题:中文编码问题。在处理包含中文字符的文件时,如果没有正确处理编码,可能会导致中文乱码。以下将详细解释如何使用...

    Java解析txt文件到数据库

    在IT行业中,Java是一种广泛应用的编程语言,尤其在处理文件操作和数据库交互方面表现出色。本文将详细探讨如何使用Java解析TXT文件并将其中的数据导入到MySQL数据库中。 首先,我们需要了解的是“建表.sql”文件。...

    java文件解压缩工具箱及案例

    例如,`ZipInputStream`和`ZipEntry`类可以用来遍历ZIP文件中的所有条目,并逐个解压缩到目标目录。 ```java FileInputStream fis = new FileInputStream("archive.zip"); ZipInputStream zis = new ZipInputStream...

    简单压缩工具(Java).rar_java工具_压缩工具

    2. 使用`ZipInputStream`和`ZipEntry`读取并解压缩ZIP档案,从JAR中提取文件。 3. 文件和目录的路径处理,确保正确地添加到JAR中。 4. 对于JAR特有的元数据,如MANIFEST.MF文件的处理,可能涉及到`java.util.jar....

    [计算机项目]基于java的文件压缩与解压缩系统设计与实现(源代码+项目报告).zip

    ZipOutputStream允许开发者添加多个文件到ZIP档案中,每个文件对应一个ZipEntry对象,包含了文件名、日期、时间等信息。通过调用`putNextEntry(ZipEntry)`开始一个新的条目,然后写入数据,最后调用`closeEntry()`...

    Android 不解压直接读取zip包的方法

    然后,我们可以使用 ZipInputStream 对象来读取zip文件中的资源。 ZipInputStream 对象可以根据资源的名称来读取相应的资源,这样我们可以直接从zip包中读取资源,而不需要将其解压缩。 文本资源读取:在读取文本...

    安卓文件下载上传解压相关-zip格式的压缩包放在asset中复制到SD卡上并解压.rar

    4. **解压文件**:Android提供了`java.util.zip`包,包含了`ZipInputStream`和`ZipEntry`类,用于处理zip文件的解压。我们可以遍历zip文件的每个条目(entry),创建对应的目标文件,然后使用`ZipInputStream`读取条...

    Java获取全国省市列表2016版.zip

    - 从压缩包解压:Java的`java.util.zip`包提供了`ZipInputStream`和`ZipEntry`类用于读取和解压zip文件。首先,你需要创建一个`FileInputStream`指向zip文件,然后用`ZipInputStream`包裹它,逐个读取并解压到目标...

Global site tag (gtag.js) - Google Analytics