项目中遇到问题,所以请各位帮忙。
目前通过webservice传过来一个zip文件的字节流(),需要解压后得到文件内容(转成字符串就可以)。
我在网上查了一下ZIP解压的资料,java提供的方法只能解压磁盘上的文件,没有提供解压字节流的方法,
目前只能通过将zip文件字节流保存成本地zip文件,之后读取本地ZIP文件解压后保存到本地,再读取本地解压后的文件得到内容。
其实上面的过程中,保存到本地的过程是多余的,请问有没有什么办法实现处理在内存中完成,即ZIP字节流直接在内存中解压后得到文件内容。谢谢!
[b]问题补充:[/b]
回复moshalanye:
我已经把压缩的输入流转成了ZipInputStream,可是里面的内容怎么取出来啊。
ZipInputStream没有提供取出解压后的流的方法啊。
[b]问题补充:[/b]
问题解决了,果然ZipInputStream的read(byte[] b, int off, int len) 方法就可以了。谢谢!
ZipInputStream zis = new ZipInputStream (new ByteArrayInputStream(zippedByte));
ZipEntry entry;
if ((entry = zis.getNextEntry()) != null) {
int count;
byte data[]=new byte[BUFFER];
while ((count = zis.read(data))!= -1) {
//对Data的操作
}