§1 Path
概述
- 表示文件在文件系统中的路径
- 可以指向文件或目录
- 可以是绝对路径,也可以是相对路径
- 通常
Path
可以替代File
方法
获取
get()
Paths.get(absolute);
Paths.get(base,relative);
标准化
normalize()
- 用于生成标准路径
- 会将路径中的
/.
和/..
按从左到右的顺序结合清除
/home/./a/b -> /home/a/b
/home/../a/b -> /a/b
遍历文件树
walkFileTree()
- 通过
FileVisitor
接口实现 - 遍历的过程中会调用
FileVisitor
接口中实现的每个方法preVisitDirectory
访问路径前postVisitDirectory
访问路径后visitFile
访问文件visitFileFailed
访问文件失败
- 可以扩展
SimpleFileVisitor
,是是配置器模式,里面包含所有默认实现 FileVisitor
所有方法都返回FileVisitResult
枚举FileVisitResult.CONTINUE
继续FileVisitResult.TERMINATE
终止FileVisitResult.SKIP_SIBLING
跳过兄弟FileVisitResult.SKIP_SUBTREE
跳过子孙
/home/./a/b -> /home/a/b
/home/../a/b -> /a/b
§2 Files
概述
- 文件、目录操作工具类
常用方法
创建目录
Files.createDirectory()
- 目录已经存在时,抛出
FileAlreadyExistsException
- 父目录不存在等其他问题,抛出
IOException
Files.createDirectory(Paths.get(directoryPath));
复制文件
Files.copy()
- 目的目录下文件已经存在时,抛出
FileAlreadyExistsException
- 目的目录不存在等其他问题,抛出
IOException
- 可以通过 options 参数,使复制时覆盖存在文件
Files.copy(Paths.get(source), Paths.get(dest));
Files.copy(Paths.get(source), Paths.get(dest), options);
移动文件
Files.move()
- 可以通过此方法实现文件重命名
- 移动失败时,抛出
IOException
Files.move(Paths.get(source), Paths.get(dest));
删除文件
Files.delete()
- 可以通过此方法实现文件重命名
- 删除失败时,比如不存在,抛出
IOException
public void tree(String root){
try {
Files.walkFileTree(Paths.get(root),new SimpleFileVisitor<Path>(){
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
System.out.println(file.toRealPath());
return super.visitFile(file, attrs);
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
§3 Charset
概述
- 字符集
常用方法
通过名字创建
forName
获取名字
forName
获取系统支持的所有字符集
availableCharset()
字符集是否被支持
isSupported()
获取虚拟机默认字符集
defaultCharset()
获取编码器
newEncoder()
获取解码器
newecoer]()