(八)java.nio.file.FileSystem类详解

抽象类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方法然后它将会等待另外一个线程完成操作,关闭文件系统会导致所有打开的通道都关闭掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值