构造方法
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(File parent, String child)
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String pathname)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(String parent, String child)
通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。
File(URI uri)
File API分类
文件自身属性读取
- getName()
- getParent()
- getParentFile()
- getPath()
- isHidden()
- lastModified()
- length()
- isAbsolute()
- isDirectory()
- isFile()
- exists()
- getAbsoluteFile()
- getAbsolutePath()
- getCanonicalFile()
- getCanonicalPath()
- getFreeSpace()
- getTotalSpace()
- getUsableSpace()
创建文件/目录基本操作
- mkdir()
- mkdirs()
- delete()
- deleteOnExit()
- renameTo(File)
- createTempFile(String, String)
- createTempFile(String, String, File)
- createNewFile()
- 文件/目录 列表读取
- listRoots()
- list()
- list(FilenameFilter)
- listFiles()
- listFiles(FileFilter)
- listFiles(FilenameFilter)
文件权限访问以及文件信息设置
- canExecute()
- canRead()
- canWrite()
- setExecutable(boolean)
- setExecutable(boolean, boolean)
- setReadable(boolean)
- setReadable(boolean, boolean)
- setReadOnly()
- setWritable(boolean)
- setWritable(boolean, boolean)
- setLastModified(long)
其他
- toPath()
- toString()
- toURI()
- equals(Object)
- compareTo(File)
- hashCode()
FileSystem简介
操作系统有各自的文件系统,这些文件系统又存在很多差异,而Java 因为是跨平台的,所以它必须要统一处理这些不同平台文件系统之间的差异,才能往上提供统一的入口。通过接口来实现统一不同的操作系统实现这个接口,就可以提供统一的表现形式。FileSystem是一个抽象类windows下的实现类为:WinNTFileSystem,在IDE中可以直接找到可能你只是找到了一个WinNTFileSystem,只有一个实现类?接口还有什么意思?
如果你目前只看到了一个WinNTFileSystem 那说明你在Windows下。WinNTFileSystem类 和 UnixFileSystem类并不是在同一个 JDK 里面,也就是说它们是分开的。你只能在 Windows 版本的 JDK 中找到 WinNTFileSystem,而在 Linux 版本的 JDK 中找到 UnixFileSystem。同样地,其他操作系统也有自己的文件系统实现类。接下来大致地看下WinNTFileSystem。
//斜杠符号
private final char slash;
//与slash相反的斜杠
private final char altSlash;
//分号
private final char semicolon;
//表示驱动盘目录缓存
private static String[] driveDirCache = new String[26];
//用于缓存标准路径
private ExpiringCache cache = new ExpiringCache();
//用于缓存标准路径前缀
private ExpiringCache prefixCache = new ExpiringCache();