zoukankan      html  css  js  c++  java
  • 《程序员修炼之道》-读书笔记三-NIO文件操作

    2.3. 处理目录和目录树

    2.3.1 在目录中查找文件: 

      在Java7新加入的 java.nio.file.DirectoryStream接口和它的实现类提供了很多功能

    Path dir = Paths.get("D:\BaiduNetdiskDownload");
    try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, "*.rar")) {
    for (Path entry : stream) {
    System.out.println(entry.getFileName());
    }
    } catch (IOException e) {
    e.printStackTrace();
    }

    2.3.2 遍历目录树

    遍历目录树需要掌握一些接口及其实现的细节。其中的关键方法是:

      Files.walkFileTree(Path start, FileVisitor<? super Path> visitor)

    列出子目录下所有以.java结尾的文件

    public class Find {
    public static void main(String[] args) throws IOException {
    Path startinfDir = Paths.get("D:\work");
    Files.walkFileTree(startinfDir, new SimpleFileVisitor<Path>() {
    @Override
    public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
    if (file.toString().endsWith(".java")) {
    System.out.println(file.getFileName());
    }
    return FileVisitResult.CONTINUE;
    }
    });
    }
    }

     SimpleFileVisitor<T>是FileVisitor<? super Path>的默认实现类,我们要完成的大部分操作,比如遍历目录,只需要重写visitFile(Path file, BasicFileAttributes attrs)方法

    2.4 NIO.2的文件系统I/O

    2.4.1 创建和删除文件

    只需要调用Files类里的辅助方法,就可以很容易的创建和删除文件.

    Path target = Paths.get("D:\Backup\MyStuff.txt");
    Files.createFile(target);
    //
    Files.delete(target);

    2.4.2 复制和移动文件

    import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
    Path source = Paths.get("D:\Backup\MyStuff.txt");
    Path target = Paths.get("D:\test.txt");
    Files.copy(source, target, REPLACE_EXISTING);
    //
    Files.move(source, target, REPLACE_EXISTING);
  • 相关阅读:
    notepad++中使用正则表达式
    python 使用多线程
    EMS查看及修改邮箱发送和接受邮件大小的方法
    EMS修改邮箱容量限制的方法
    EMS查看邮箱容量限制的方法
    EMS批量为用户分配邮箱
    EMS已有用户分配邮箱方法
    EMS创建独立新用户并分配邮箱
    【转载】【zabbix】自定义监控项key值
    Centos6.9 安装zabbix3.4 过程
  • 原文地址:https://www.cnblogs.com/Deters/p/11152909.html
Copyright © 2011-2022 走看看