抽象类FileSystem简介
public abstract class FileSystem extends Object implements Closeable类
为文件系统提供一个接口,是对象访问文件系统中的文件和其它对象的工厂类。

默认的文件系统,通过调用FileSystems.getDefault 方法,提供访问java虚拟机的文件系统,FileSystems类定义方法创建文件系统它提供对其它文件类型的访问。

文件系统是几种类型的对象的工厂:
getPath方法转换与路径相关的字符串,返回一个Path对象可以用于定位和访问文件。
getPathMatcher 方法是用于创建一个 PathMatcher在路径上执行一个匹配操作。
getFileStores返回一个迭代器在底层file-stores。
getUserPrincipalLookupService方法返回 UserPrincipalLookupService按名称查找用户或者组。
newWatchService方法WatchService可用于监视对象进行更改和事件。

文件系统千差万别,在某些情况下,文件系统是具有一个顶级根目录的文件的单一层次结构。在其它情况下,他可能有几个不同的文件层次结构 ,每个都有自己的顶级根目录,getRootDirectories方法可能被用于迭代文件系统中的根目录,文件系统通常由一个或多个提供文件存储的底层文件库组成。这些文件存储也可以在它们支持的特性上有所不同,以及它们与文件关联的文件属性或元数据。

文件系统创建的时候是打开的,可以调用它的关闭方法关闭文件系统。一旦关闭,任何尝试访问文件系统中的对象都会抛出ClosedFileSystemException异常,通过默认的provider创建的文件系统不能被关闭。

一个FileSystem可以提供只读和读写的文件件系统,文件系统提供的只读访问是否已经建立,可以通过FileSystem的isReadOnly 方法来测试,尝试将一个对象写入到一个只读的文件FileSystem中会抛出ReadOnlyFileSystemException异常。

在并发编程中使用文件系统是安全的,在任何时候close方法将会被调用去关闭文件系统,但是否是异步调用是未知的。换句话说,如果一个线程访问一个文件系统中的对象,并且另外一个线程调用close方法然后它将会等待另外一个线程完成操作,关闭文件系统会导致所有打开的通道都关闭掉。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐