创建 Java NIO 文件系统时,"env" 选项(及其用途)是什么?

What are the "env" options (and their purpose) when creating a Java NIO filesystem?

网上有很多关于使用这样的代码创建 Java NIO 文件系统实例的示例

    Map<String, String> env = new HashMap<String, String>();
    env.put("create", "true");

    FileSystem zipfs = FileSystems.newFileSystem(zipUri, env);

但是 "env" 地图中可以放置哪些受支持的选项?它们有什么用处?

FileSystem.newFileSystem(URI uri, Map<String,​?> env) 的 Javadoc 指定

env - a map of provider specific properties to configure the file system; may be empty

所以这些取决于将为给定 uri 创建新 FileSystem 的提供商的类型。

在您的示例中,您提供了一个 URI 大概代表 ZIP 文件。这是由 Zip File System Provider whose properties are defined here 提供的。那些是

  • "create": true / false

    The value should be of type java.lang.String. The default value is false. If the value is true, the zip file system provider creates a new zip file if it does not exist.

  • "encoding": String表示编码方案

    The value should be of type java.lang.String. The value of the property indicates the encoding scheme for the names of the entries in the zip or JAR file. The default value is UTF-8.