• 基础 | NIO - [Files & Path & Charset]


    §1 Path

    概述

    • 表示文件在文件系统中的路径
    • 可以指向文件或目录
    • 可以是绝对路径,也可以是相对路径
    • 通常 Path 可以替代 File

    方法
    获取
    get()

    Paths.get(absolute);
    Paths.get(base,relative);
    

    标准化
    normalize()

    • 用于生成标准路径
    • 会将路径中的 /./.. 按从左到右的顺序结合清除
    /home/./a/b -> /home/a/b
    /home/../a/b -> /a/b
    

    遍历文件树
    walkFileTree()

    • 通过 FileVisitor 接口实现
    • 遍历的过程中会调用 FileVisitor 接口中实现的每个方法
      • preVisitDirectory 访问路径前
      • postVisitDirectory 访问路径后
      • visitFile 访问文件
      • visitFileFailed 访问文件失败
    • 可以扩展 SimpleFileVisitor ,是是配置器模式,里面包含所有默认实现
    • FileVisitor 所有方法都返回 FileVisitResult 枚举
      • FileVisitResult.CONTINUE 继续
      • FileVisitResult.TERMINATE 终止
      • FileVisitResult.SKIP_SIBLING 跳过兄弟
      • FileVisitResult.SKIP_SUBTREE 跳过子孙
    /home/./a/b -> /home/a/b
    /home/../a/b -> /a/b
    

    §2 Files

    概述

    • 文件、目录操作工具类

    常用方法
    创建目录
    Files.createDirectory()

    • 目录已经存在时,抛出 FileAlreadyExistsException
    • 父目录不存在等其他问题,抛出 IOException
    Files.createDirectory(Paths.get(directoryPath));
    

    复制文件
    Files.copy()

    • 目的目录下文件已经存在时,抛出 FileAlreadyExistsException
    • 目的目录不存在等其他问题,抛出 IOException
    • 可以通过 options 参数,使复制时覆盖存在文件
    Files.copy(Paths.get(source), Paths.get(dest));
    Files.copy(Paths.get(source), Paths.get(dest), options);
    

    移动文件
    Files.move()

    • 可以通过此方法实现文件重命名
    • 移动失败时,抛出 IOException
    Files.move(Paths.get(source), Paths.get(dest));
    

    删除文件
    Files.delete()

    • 可以通过此方法实现文件重命名
    • 删除失败时,比如不存在,抛出 IOException
    public void tree(String root){
        try {
            Files.walkFileTree(Paths.get(root),new SimpleFileVisitor<Path>(){
                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                    System.out.println(file.toRealPath());
                    return super.visitFile(file, attrs);
                }
            });
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    §3 Charset

    概述

    • 字符集

    常用方法
    通过名字创建
    forName

    获取名字
    forName

    获取系统支持的所有字符集
    availableCharset()

    字符集是否被支持
    isSupported()

    获取虚拟机默认字符集
    defaultCharset()

    获取编码器
    newEncoder()

    获取解码器
    newecoer]()

  • 相关阅读:
    Python list列表添加元素的3种方法
    初学Flutter:swiper实现
    WebGL 计算平行光、环境光下的漫反射光颜色
    LiDAR 完整指南介绍:激光探测和测距
    Python创建第一个Django框架程序
    二叉树的遍历(非递归版)
    .NET 云原生架构师训练营(权限系统 代码重构)--学习笔记
    Spring Boot项目在Windows上的自启动策略与Windows自动登录配置
    用大白话解释“什么是ERP?” 看完这篇就全明白了
    c语言:打印成绩单
  • 原文地址:https://blog.csdn.net/ZEUS00456/article/details/127115172