public final class FileSystems extends Object
getDefault
方法。
任何的方法定义的这类原因默认provider
要加载的第一个调用。默认的供应商,由URI方案“文件”确定,造成FileSystem
提供访问文件系统的java虚拟机访问。如果进程加载或初始化默认提供程序失败则抛出一个未指定的错误。
installedProviders
方法的第一次调用,通过调用这个类定义的newFileSystem
方法、定位和加载所有安装的文件系统供应商。安装商使用服务提供商的加载装置的加载ServiceLoader
类定义。已安装的供应商使用系统类加载程序加载。如果系统类装载器不能被发现,那么扩展类装载器被使用;如果没有扩展类装载器,那么引导装载类装载器被使用。供应商通常放置在应用程序类路径或在扩展目录的JAR文件安装JAR文件包含在资源目录META-INF/services
命名java.nio.file.spi.FileSystemProvider
供应商配置文件,该文件列出的一个或多个完全合格,有一零个参数的构造函数FileSystemProvider
具体子类名称。安装供应商的顺序是实现特定的。如果提供程序实例化和getScheme
返回相同的URI方案的提供者,是以前实例化然后最近实例化重复被丢弃。URI方案相比不考虑的情况下。在施工过程中,供应商可以安全地访问与默认供应商相关的文件,但需要采取以避免其他已安装的供应商的循环加载。如果检测到已安装的服务提供商的循环加载,则抛出一个未指定的错误。
这类还定义了工厂方法允许ClassLoader
被指定当提供者定位。与安装商、供应商类将提供配置文件中的资源目录META-INF/services
鉴定。
如果一个线程启动已安装的文件系统提供商的加载,另一个线程调用一个方法,该方法也试图加载供应商,然后该方法将阻止,直到加载完成。
Modifier and Type | Method and Description |
---|---|
static FileSystem |
getDefault()
返回默认
FileSystem 。
|
static FileSystem |
getFileSystem(URI uri)
返回一个指向一个现有的
FileSystem 。
|
static FileSystem |
newFileSystem(Path path, ClassLoader loader)
构建了一种新的
FileSystem 访问一个文件的内容作为一个文件系统。
|
static FileSystem |
newFileSystem(URI uri, Map<String,?> env)
构建了一个新的文件系统,是由一个
URI 鉴定
|
static FileSystem |
newFileSystem(URI uri, Map<String,?> env, ClassLoader loader)
构建了一个新的文件系统,是由一个
URI 鉴定
|
public static FileSystem getDefault()
FileSystem
。默认的文件系统创建的对象,提供访问文件系统的java虚拟机访问。文件系统的工作目录是当前用户目录,通过系统性
user.dir
命名。这允许与
java.io.File
级互操作性。
任何的方法定义的这类定位默认provider
对象第一次调用。在系统属性java.nio.file.spi.DefaultFileSystemProvider
未定义则默认提供程序是一个系统的默认提供程序调用创建默认的文件系统。
如果系统性能java.nio.file.spi.DefaultFileSystemProvider
定义然后被一个或多个完全合格的混凝土供应商类URI方案"file"
标识名称。属性是一个多个名称的列表,然后由逗号分隔的名称。每个类的加载,使用系统类加载器,通过调用一一个参数的构造函数的形参类型是FileSystemProvider
实例化。提供者是加载和他们在房地产上市的实例化。如果这个过程失败或供应商的方案不等于"file"
然后一个未指定的错误被。URI方案通常比较不考虑的情况下,默认的提供程序,该方案需要"file"
。第一类是通过调用它提供一个参照系统默认提供程序实例。第二类是通过调用它提供一个参考的第一个提供程序实例实例化。第三类是通过调用它提供一个参考的第二实例实例化,等等。将最后的供应商成为默认供应商;其getFileSystem
方法被调用的URI "file:///"
获得参考默认的文件系统。
后来这个方法调用返回文件系统被第一次调用返回。
public static FileSystem getFileSystem(URI uri)
FileSystem
。
该方法遍历installed
供应商找到供应商,由给定的URI的URI scheme
鉴定。URI方案相比不考虑的情况下。URI的确切形式是高度依赖供应商。如果发现,供应商的getFileSystem
方法被调用以获得一个参考的FileSystem
。
一旦该提供程序创建的文件系统closed
是供应商依赖如果这个方法返回一个引用到关闭文件系统或抛出FileSystemNotFoundException
。如果提供程序允许一个新的文件系统与URI作为它先前创建的这个方法抛出异常后,如果调用文件系统关闭文件系统相同的创建(和之前的一个新实例的newFileSystem
方法创建的)。
如果一个安全管理器被安装,那么一个提供者的实现可能需要在返回一个引用之前检查一个现有的文件系统的权限。在default
文件系统的情况下,没有权限检查是必需的。
uri
的URI来定位文件系统
IllegalArgumentException
如果为
uri
参数预条件不满足
FileSystemNotFoundException
-如果文件系统,由URI标识,不存在
ProviderNotFoundException
如果提供者支持的URI方案未安装
SecurityException
如果安全管理器安装和否定一个未指定的权限
public static FileSystem newFileSystem(URI uri, Map<String,?> env) throws IOException
URI
该方法遍历installed
供应商找到供应商,由给定的URI的URI scheme
鉴定。URI方案相比不考虑的情况下。URI的确切形式是高度依赖供应商。如果发现,供应商的newFileSystem(URI,Map)
方法被调用来构造新的文件系统。
一旦一个文件系统是closed
是供应商依赖如果提供者允许一个新的文件系统与URI作为先前创建的文件系统的创建。
使用示例:假设有一个供应商的方案确定"memory"
安装:
图 <字符串,字符串> env =新的HashMap <>();环境。把(“能力”、“16G”);环境。把(“块”、“4K”);FS =文件系统的文件系统。newfilesystem(URI。创造(“记忆:/ / /?名称= LogFS”),env); 字符串,字符串>鉴定
uri
的URI标识的文件系统
env
-Map供应商特定的属性配置文件系统;可能是空的
IllegalArgumentException
如果为
uri
参数预条件没有满足,或
env
参数不包含由供应商所要求的属性,或属性值无效
FileSystemAlreadyExistsException
-如果文件系统已经创建
ProviderNotFoundException
如果提供者支持的URI方案未安装
IOException
如果I/O错误时创建文件系统
SecurityException
如果安全管理器安装,它否认未经文件系统供应商实施要求
public static FileSystem newFileSystem(URI uri, Map<String,?> env, ClassLoader loader) throws IOException
URI
该方法首先试图找到一个供应商以同样的方式方法的newFileSystem(URI,Map)
。如果安装的供应商都不支持的URI方案然后尝试使用给定的类加载器查找供应商。如果提供程序支持的URI方案位于其newFileSystem(URI,Map)
然后调用构造新的文件系统。
uri
的URI标识的文件系统
env
-Map供应商特定的属性配置文件系统;可能是空的
loader
-类加载器查找供应商或
null
只是试图找到一个供应商
IllegalArgumentException
如果为
uri
参数预条件没有满足,或
env
参数不包含由供应商所要求的属性,或属性值无效
FileSystemAlreadyExistsException
-如果URI方案确定的供应商和文件系统已经创建
ProviderNotFoundException
如果提供者支持的URI方案没有被发现
ServiceConfigurationError
-当错误发生时加载服务提供商时
IOException
- I/O错误时创建文件系统
SecurityException
如果安全管理器安装,它否认未经文件系统供应商实施要求
public static FileSystem newFileSystem(Path path, ClassLoader loader) throws IOException
FileSystem
。
这种方法利用专门的提供程序,创建一个或多个文件的内容被视为一个文件系统的伪文件系统。
该方法遍历installed
提供者。它调用,反过来,一个空的Map每个供应商的newFileSystem(Path,Map)
方法。如果一个提供程序返回一个文件系统,则迭代终止,文件系统返回。如果安装的供应商没有返回一个FileSystem
然后尝试使用给定的类加载器查找供应商。如果一个提供程序返回一个文件系统,则查找结束并返回文件系统。
path
-文件的路径
loader
-类加载器查找供应商或
null
只是试图找到一个供应商
ProviderNotFoundException
如果提供者支持这种文件类型无法定位
ServiceConfigurationError
-当错误发生时加载服务提供商时
IOException
如果I/O错误发生
SecurityException
如果安全管理器安装和否定一个未指定的权限
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.