java将zip文件打开到内存中

时间:2015-10-24 15:47:04

标签: java memory zip

我见过很多Java教程,解释了如何将zip文件解压缩到磁盘。但我想知道是否有可能将文件提取到内存中。

例如,我将读取多个zip文件,每个文件都包含一个包含一些信息的JSON文件。我想传入每个zip文件并从JSON文件中提取信息。

现在,根据我目前所知,我需要将JSON文件解压缩到磁盘,从磁盘读取JSON文件,删除JSON文件,然后重复下一个zip文件。

有没有办法将zip条目提取到内存对象中,并从内存中读取JSON文件。

实际上我需要的是一个文件句柄,指向从zip存档中提取的内存文件。

1 个答案:

答案 0 :(得分:2)

不需要在任何地方提取Zip文件。您可以直接从存档中读取。尝试类似的东西(一切都是普通的Java,不需要外部库):

    ZipFile zipFile = new ZipFile("archive.zip");
    ZipEntry entry = zipFile.getEntry("file.json");
    InputStream is = zipFile.getInputStream(entry);
    byte[] data = new byte[is.available()];
    is.read(data);
    String json = new String(data);