File、Files、Path、Paths

一、Path、Paths 和 File、Files

        // Paths 工具类,用于获取 Path 实例
        Path path = Paths.get("files/Data.txt"); // 相对路径
        Path path2 = Paths.get("D:\\files/Data.txt"); // 绝对路径
        Path path3 = Paths.get("D:/files/Data.txt"); // 绝对路径
        Path path4 = Paths.get("D:/files", "Data.txt"); // 绝对路径
        System.out.println(path); // 打印结果:files\Data.txt
        System.out.println(path2); // 打印结果:D:\files\Data.txt
        System.out.println(path3); // 打印结果:D:\files\Data.txt
        System.out.println(path4); // 打印结果:D:\files\Data.txt
        // 路径正常化
        Path path5 = Paths.get("D:/files/../files2/file2.txt"); // 绝对路径
        System.out.println(path5); // 打印结果:D:\files\..\files2\file2.txt
        System.out.println(path5.normalize()); // 打印结果:D:\files2\file2.txt

        // Flies
        boolean exists = Files.exists(path5); // 判断文件是否存在,存在返回true,反之返回false
        System.out.println(exists); // false
        try {
            /*
             创建一级目录
             如果存在,则抛出异常:FileAlreadyExistsException
             无法创建多级目录,如果目录不存在,则会抛出异常:NoSuchFileException
             */
            Files.createDirectory(path5);
            // 创建多级目录
            Files.createDirectories(path5);
            // copy 文件,如果文件存在则会抛出异常:FileAlreadyExistsException
            Files.copy(path, path5);
            // 如果希望覆盖掉已存在的文件,需要使用 StandardCopyOption.REPLACE_EXISTING
            Files.copy(path, path5, StandardCopyOption.REPLACE_EXISTING);
            // 移动文件,StandardCopyOption.ATOMIC_MOVE 保证移动文件的原子性
            Files.move(path, path5, StandardCopyOption.ATOMIC_MOVE);
            /*
             1. 删除文件,如果文件不存在,则会抛出异常:NoSuchFileException
             2. 删除目录,如果目录不存在,则会抛出异常:DirectoryNotEmptyException
             */
            Files.delete(path2);
        } catch (IOException e) {
            e.printStackTrace();
        }        

 

二、文件遍历

File、Files、Path、Paths

 

上一篇:【坚持每日一题5.28】1436. 旅行终点站


下一篇:CF36E Two Paths