我们平时操作文件时可能要写一大堆代码。JDK1.7引入了好用的Path 和 Paths类。
创建文件,删除文件,复制文件,查找文件,查找文件个数等,只需要调一个Api就能解决,下面开始进行介绍。
1. Paths类的使用
代码:
Path path = Paths.get("d:\\p\\a\\..\\b");
System.out.println(path);
System.out.println(path.normalize()); // 正常格式化路径打印结果:
d:\p\a\..\b
d:\p\b
2. Files类的使用
2.1. 检查文件是否存在:Files.exists(path);
2.2. 创建一级目录:Files.createDirectory(path);
如果目录已存在,会抛异常 FileAlreadyExistsException
不能一次创建多级目录,否则会抛异常 NoSuchFileException
2.3. 创建多级目录用 :Files.createDirectories(path);
2.4. 复制文件:Files.copy(from, to, StandardCopyOption.REPLACE_EXISTING);
2.5. 移动文件:Files.move(from, to, StandardCopyOption.ATOMIC_MOVE);
2.6. 删除文件:Files.delete(path);
如果文件不存在,会抛异常 NoSuchFileException
2.7. 删除目录:Files.delete(path);
如果目录还有内容,会抛异常 DirectoryNotEmptyException
2.8 遍历目录文件(遍历后可以做任何操作)
文件数量的统计,删除文件。。。都可以在对应的方法中操作
public static void main(String[] args) throws IOException {
Path path = Paths.get("D:\\nettytest");
// 遍历文件
Files.walkFileTree(path, new SimpleFileVisitor<Path>(){
// 操作文件夹
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)
throws IOException {
System.out.println(dir);
System.out.println("添加自己所要操作文件夹的内容");
return super.preVisitDirectory(dir, attrs);
}
// 操作文件
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
throws IOException {
System.out.println(file);
System.out.println("添加自己所要操作文件的内容");
return super.visitFile(file, attrs);
}
});
}
这是一套非常好用操作文件的方法,省去了以前复杂的文件操作方法。