java 文件系统格式_java11教程--类FileSystems用法

文件系统的工厂方法。

此类定义getDefault方法以获取默认文件系统和工厂方法以构造其他类型的文件系统。

第一次调用此类定义的任何方法都会导致加载默认值provider 。 由URI方案“file”标识的默认提供程序创建FileSystem ,该提供程序提供对Java虚拟机可访问的文件系统的访问。 如果加载或初始化默认提供程序的过程失败,则会引发未指定的错误。

第一次调用installedProviders方法,通过调用newFileSystem定义的任何newFileSystem方法,查找并加载所有已安装的文件系统提供程序。 使用ServiceLoader类定义的服务提供者加载工具加载已安装的提供程序。 使用系统类加载器加载已安装的提供程序。 如果找不到系统类加载器,则使用平台类加载器。 供应商通常是通过将它们放置在应用程序类路径上的JAR文件进行安装,JAR文件包含一个名为供应商的配置文件java.nio.file.spi.FileSystemProvider在资源目录META-INF/services ,该文件列出了一个或具体子类的更完全限定名称FileSystemProvider具有零参数构造函数。 安装的提供程序所在的顺序是特定于实现的。 如果提供者被实例化并且其getScheme返回先前实例化的提供者的相同URI方案,则丢弃最近实例化的副本。 在不考虑大小写的情况下比较URI方案。 在构造期间,提供者可以安全地访问与默认提供者相关联的文件,但是需要注意避免循环加载其他已安装的提供者。 如果检测到已安装的提供程序的循环加载,则会引发未指定的错误。

此类还定义了允许在查找提供程序时指定ClassLoader的工厂方法。 与安装的提供程序一样,通过将提供程序配置文件放在资源目录META-INF/services来标识提供程序类。

如果线程启动已安装的文件系统提供程序的加载,而另一个线程调用也尝试加载提供程序的方法,则该方法将阻塞,直到加载完成。

返回默认值

FileSystem 。

返回对现有

FileSystem的引用。

构造由URI标识的新文件系统

构造由URI标识的新文件系统

构造一个新的

FileSystem以访问文件的内容作为文件系统。

返回默认值FileSystem 。

默认文件系统创建的对象提供对Java虚拟机可访问的文件系统的访问。

文件系统的工作目录是当前用户目录,由系统属性user.dir命名。

第一次调用此类定义的任何方法都会找到默认的provider对象。 如果未定义系统属性java.nio.file.spi.DefaultFileSystemProvider则默认提供程序是调用以创建默认文件系统的系统默认提供程序。

如果定义了系统属性java.nio.file.spi.DefaultFileSystemProvider ,则将其视为由URI方案"file"标识的具体提供者类的一个或多个完全限定名称的"file" 。 如果属性是多个名称的列表,则名称由逗号分隔。 使用系统类加载器加载每个类,并通过调用其形式参数类型为FileSystemProvider的一个参数构造函数进行实例化。 提供程序按属性中列出的顺序加载和实例化。 如果此过程失败或提供者的方案不等于"file"则会引发未指定的错误。 通常比较URI方案而不考虑大小写,但对于默认提供者,该方案必须是"file" 。 第一个提供程序类通过引用系统默认提供程序来调用它来实例化。 第二个提供程序类通过引用第一个提供程序实例来调用它来实例化。 第三个提供程序类通过引用第二个实例来调用它来实例化,依此类推。 要实例化的最后一个提供程序成为默认提供程序; 使用URI "file:///"调用其getFileSystem方法以获取对默认文件系统的引用。

此方法的后续调用将返回第一次调用返回的文件系统。

返回对现有FileSystem的引用。

此方法遍历installed提供程序,以找到由给定URI的URI scheme标识的提供程序。 在不考虑大小写的情况下比较URI方案。 URI的确切形式高度依赖于提供者。 如果找到,则调用提供程序的getFileSystem方法以获取对FileSystem的引用。

此提供程序创建的文件系统为closed后 ,如果此方法返回对已关闭文件系统的引用或抛出FileSystemNotFoundException,则它依赖于提供程序。 如果提供程序允许使用与先前创建的文件系统相同的URI创建新文件系统,则在文件系统关闭后(以及newFileSystem方法创建新实例之前)调用此方法将引发异常。

如果安装了安全管理器,则提供程序实现可能需要在返回对现有文件系统的引用之前检查权限。 对于default文件系统,不需要进行权限检查。

构造由URI标识的新文件系统

此方法迭代installed提供程序,以找到由给定URI的URI scheme标识的提供程序。 在不考虑大小写的情况下比较URI方案。 URI的确切形式高度依赖于提供者。 如果找到,则调用提供程序的newFileSystem(URI,Map)方法来构造新文件系统。

一旦文件系统是closed ,如果提供者允许使用与先前创建的文件系统相同的URI创建新文件系统,则它依赖于提供者。

用法示例:假设已安装的方案"memory"标识了提供者:

Map env = new HashMap<>();

env.put("capacity", "16G");

env.put("blockSize", "4k");

FileSystem fs = FileSystems.newFileSystem(URI.create("memory:///?name=logfs"), env);

构造由URI标识的新文件系统

此方法首先尝试以与newFileSystem(URI,Map)方法完全相同的方式查找已安装的提供程序。 如果没有安装的提供程序支持URI方案,则尝试使用给定的类加载器定位提供程序。 如果找到支持URI方案的提供程序,则调用其newFileSystem(URI,Map)来构造新文件系统。

构造一个新的FileSystem以访问文件的内容作为文件系统。

此方法使用创建伪文件系统的专用提供程序,其中一个或多个文件的内容被视为文件系统。

此方法遍历installed提供程序。 如果提供程序返回文件系统,则迭代终止并返回文件系统。 如果没有安装的提供程序返回FileSystem则尝试使用给定的类加载器定位提供程序。 如果提供程序返回文件系统,则查找将终止,并返回文件系统。

变量和类型

方法

描述

返回默认值

FileSystem 。

返回对现有

FileSystem的引用。

构造一个新的

FileSystem以访问文件的内容作为文件系统。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值