JAVA NIO ZIP FileSystem相当于ZipOutputStream setLevel

时间:2015-02-18 14:27:34

标签: java jar compression zip nio

在JAVA NIO ZIP文件系统中是否有一个ZipOutputStream setLevel(9)? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

documentation给出了如何使用Zip文件系统提供程序的示例:

import java.util.*;
import java.net.URI;
import java.nio.file.Path;
import java.nio.file.*;

public class ZipFSPUser {
    public static void main(String [] args) throws Throwable {
        Map<String, String> env = new HashMap<>(); 
        env.put("create", "true");
        // locate file system by using the syntax 
        // defined in java.net.JarURLConnection
        URI uri = URI.create("jar:file:/codeSamples/zipfs/zipfstest.zip");

        try (FileSystem zipfs = FileSystems.newFileSystem(uri, env)) {
            Path externalTxtFile = Paths.get("/codeSamples/zipfs/SomeTextFile.txt");
            Path pathInZipfile = zipfs.getPath("/SomeTextFile.txt");          
            // copy a file into the zip file
            Files.copy( externalTxtFile,pathInZipfile, 
                    StandardCopyOption.REPLACE_EXISTING ); 
        } 
    }
}

正如您所看到的,有一个Map<String, String>环境变量用于设置zip属性。但是现在,正如本documentation page中所定义的,只有两个选项:create来定义是否应该创建一个新的zip文件(如果它不存在),encoding来定义编码方案。