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);
  • 相关阅读:
    Navicat for MySQL 安装和破解(完美)
    office2016系列产品关闭时卡顿
    普通程序员
    程序员赚外快到底有哪些方法?(干货篇)
    win10 解决 WMI Provider Host 占用CPU过高问题
    WMI Provider Host
    KMPlayer 一打开总是出现右面的窗口 导航区 怎样设置不会自动打开
    access denied for user 'root'@'localhost'
    mysql windows 安装
    docker run hello-world失败
  • 原文地址:https://www.cnblogs.com/Deters/p/11152909.html
Copyright © 2011-2022 走看看