JAVA操作解析zip文件,内存处理zip文件条目

        对zip文件解析,本可以直接解析zip文件成个个子文件,但是有的情况是我们并不需要生成文件(这个动作会保存生成文件),因此这里提供一个内存在处理的方式,如有问题,望指正。

/**
	 * 读取ZIP文件流
	 * @param inputStream
	 * @return
	 * @throws Exception
	 */
	public static  List readZipInputStream(ZipInputStream zis) throws Exception {
		List lst_byte = new ArrayList();
		while (zis.getNextEntry() != null) {
			ByteArrayOutputStream bos = new ByteArrayOutputStream();
			byte[] buffer = new byte[1024];
			int len = 0;
			while ((len = zis.read(buffer)) != -1) {
				bos.write(buffer, 0, len);    
			}
			lst_byte.add(bos.toByteArray());
			bos.close();
			zis.getNextEntry();  //关闭该条目
		}
		return lst_byte;
	}


以上方法是直接通过输入流InputStream得到ZipInputStream,然后调用方法即可。

InputStream inputStream = conn.getInputStream(); //得到输入流  

ZipInputStream zis = new ZipInputStream(inputStream);

对于得到的List 这个每一个byte[]都是一个子文件字节表达,可以直接操作。

比如zip文件中都是文本文件,那么循环List new String(byte[], "UTF-8") 就可以获取到所有文件的字符文本了。




你可能感兴趣的:(java,java,zip,io)