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);
  • 相关阅读:
    POJ 2104 K-th Number(区间第k大数)(平方切割,归并树,划分树)
    JAVA学习第四十一课 — 泛型的基本应用(一)
    (十九)组合模式详解
    计算机的组成 —— 主板
    计算机的组成 —— 主板
    查询电脑信息
    查询电脑信息
    计算机的组成 —— 显卡
    计算机的组成 —— 显卡
    云计算服务与基本术语、概念
  • 原文地址:https://www.cnblogs.com/Deters/p/11152909.html
Copyright © 2011-2022 走看看