FileSystem是JDK对文件系统的抽象,由于jvm会运行在各种文件系统例如windows、linux、macos等,所以当我们执行一些操作,例如读写文件时,每种文件系统的文件路径格式都不相同。FileSystem对提供了对文件系统的一些基本操作,例如获取路径等。
FileSystem提供的方法
FileSystem提供了下面这些方法,其中我们需要重点关注的是getPath方法。它会根据我们给定的参数返回一个该文件系统下的Path。Path我们之后会讲解到。
获取默认FileSystem
要想获取FileSystem,我们需要用到FileSystems类,这可以看成一个工厂类,用来构造和返回FileSystem。
它的getDefault方法就能获取当前JVM运行的文件系统。这个方法就是大部分情况下我们会用到的。
我在MAC系统上运行:
public static void main(String[] args) throws FileNotFoundException {
FileSystem fileSystem = FileSystems.getDefault();
System.out.println(fileSystem);
}
输出:
sun.nio.fs.MacOSXFileSystem@5b6f7412
可以看出是跟mac相关的,其实FileSystem是有几个实现类的,只是我们不能直接使用它们,而通过FileSystems.getDefault()就能拿到。
拿到了当前的文件系统,我们就能使用这个FileSystem的方法,例如可以使用getSeparator()获取路径分隔符,使用getPath方法来获取文件路径。
public abstract String getSeparator();
下面我在mac上执行getSeparator方法:
public static void main(String[] args) throws FileNotFoundException {
FileSystem fileSystem = FileSystems.getDefault();
System.out.println(fileSystem.getSeparator());
}
输出:
/
正是mac上的文件路径分隔符。