从zip中以字节的形式读取zip条目的内容

时间:2011-08-18 07:28:45

标签: java

我正在调用一些返回HTTP响应的代码。我可以得到响应的内容,它返回一个字节数组。字节表示我想要提取的zip文件并获取单个文件的内容(zip只包含一个文件)。

目前我有一些杂乱的代码(如果我保留它,我需要清理它)似乎有效:

    byte[] bytes = response.out.toByteArray();
    ByteArrayInputStream input = new ByteArrayInputStream(bytes);
    ZipInputStream zip = new ZipInputStream(input);
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    zip.getNextEntry();
    int data;
    while ((data = zip.read()) != -1) output.write(data);
    output.close();
    zip.close();
    input.close();
    byte[] kmlBytes = output.toByteArray();
    String contents = new String(kmlBytes, "UTF-8");

但是想知道是否有更清洁的方法来做同样的事情,因为上面看起来非常难看。

1 个答案:

答案 0 :(得分:2)

为了避免“重新发明轮子”并减少混乱并专注于应用的业务逻辑而不是像这样的低级代码,您可以使用Apache Commons Compress