zip包中的Java 8 FileSystem访问文件压缩在另一个zip中

时间:2017-08-01 10:39:47

标签: java filesystems zip java.nio.file

我想询问是否可以访问和修改zip文件中的文本文件,该文件在另一个zip包中压缩。

我知道可以使用Java.nio FileSysten这样访问该文件。在这个例子中读取" sample.txt"中的所有行。文件。

   FileSystem fileSystem = FileSystems.newFileSystem(new URI("jar:file", "sample/path/to/zipfile/main.zip", null), new HashMap<>());
   readAllLines("sample.txt");

,其中

   public List<String> readAllLines(String fileName) {
    List<String> file = new ArrayList<>();
    Path rootDir = fileSystem.getRootDirectories().iterator().next();

    try (DirectoryStream<Path> files = Files.newDirectoryStream(rootDir,
            entry -> entry.toString().equalsIgnoreCase("/" + fileName))) {
        Path path = files.iterator().next();
        file = Files.readAllLines(path, Charset.forName("ISO-8859-1"));
    } catch (NoSuchElementException | IOException e) {
        e.printStackTrace();
    }

    return file;
}

我想问一下,如果可以阅读这个&#34; sample.txt&#34;文件也是如果它将位于2个拉链包深度。比如mainzip.zip/sample.zip/sample.txt

     mainzip.zip
     |
     |-sample.zip
       |
       |-sample.txt
     |-another.zip

当然我现在想要解压缩mainzip.zip。

感谢您提供任何提示

0 个答案:

没有答案