当前位置: 首页 > web >正文

介绍一下Files类的常用方法

java.nio.file.Files 类是 Java 7 引入的 java.nio.file 包中的一个实用工具类,它提供了许多静态方法来操作文件、目录和路径,能更方便、高效地进行文件 I/O 操作。下面为你介绍 Files 类的一些常用方法:

1. 文件和目录的存在性检查

  • exists(Path path):用于判断指定路径的文件或目录是否存在
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class ExistsExample {public static void main(String[] args) {Path path = Paths.get("test.txt");boolean exists = Files.exists(path);System.out.println("文件是否存在: " + exists);}
}

  • notExists(Path path):判断指定路径的文件或目录是否不存在。
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class NotExistsExample {public static void main(String[] args) {Path path = Paths.get("nonexistent.txt");boolean notExists = Files.notExists(path);System.out.println("文件是否不存在: " + notExists);}
}

2. 文件和目录的创建

  • createFile(Path path):创建一个新的空文件,如果文件已存在则会抛出 FileAlreadyExistsException 异常。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class CreateFileExample {public static void main(String[] args) {Path path = Paths.get("newfile.txt");try {Files.createFile(path);System.out.println("文件创建成功");} catch (IOException e) {e.printStackTrace();}}
}

  • createDirectory(Path path):创建一个新的目录,如果目录已存在则会抛出 FileAlreadyExistsException 异常;如果父目录不存在则会抛出 NoSuchFileException 异常。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class CreateDirectoryExample {public static void main(String[] args) {Path path = Paths.get("newdirectory");try {Files.createDirectory(path);System.out.println("目录创建成功");} catch (IOException e) {e.printStackTrace();}}
}

  • createDirectories(Path path):创建一个新的目录,包括所有必需但不存在的父目录。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class CreateDirectoriesExample {public static void main(String[] args) {Path path = Paths.get("parent/child");try {Files.createDirectories(path);System.out.println("目录及父目录创建成功");} catch (IOException e) {e.printStackTrace();}}
}

3. 文件和目录的删除

  • delete(Path path):删除指定路径的文件或空目录,如果文件或目录不存在则会抛出 NoSuchFileException 异常。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class DeleteExample {public static void main(String[] args) {Path path = Paths.get("toDelete.txt");try {Files.delete(path);System.out.println("文件删除成功");} catch (IOException e) {e.printStackTrace();}}
}
  • deleteIfExists(Path path):如果指定路径的文件或目录存在则删除它,若不存在则不会抛出异常。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class DeleteIfExistsExample {public static void main(String[] args) {Path path = Paths.get("maybeDelete.txt");try {boolean deleted = Files.deleteIfExists(path);System.out.println("文件是否被删除: " + deleted);} catch (IOException e) {e.printStackTrace();}}
}

4. 文件内容的读写

  • readAllBytes(Path path):将指定文件的所有字节读入一个字节数组。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class ReadAllBytesExample {public static void main(String[] args) {Path path = Paths.get("test.txt");try {byte[] bytes = Files.readAllBytes(path);String content = new String(bytes);System.out.println("文件内容: " + content);} catch (IOException e) {e.printStackTrace();}}
}

  • write(Path path, byte[] bytes):将字节数组写入指定的文件,如果文件不存在则创建它,如果文件已存在则覆盖其内容。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class WriteExample {public static void main(String[] args) {Path path = Paths.get("writeTest.txt");String data = "Hello, World!";try {Files.write(path, data.getBytes());System.out.println("数据写入成功");} catch (IOException e) {e.printStackTrace();}}
}

5. 文件属性的获取

  • size(Path path):返回指定文件的大小(以字节为单位)。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class FileSizeExample {public static void main(String[] args) {Path path = Paths.get("test.txt");try {long size = Files.size(path);System.out.println("文件大小: " + size + " 字节");} catch (IOException e) {e.printStackTrace();}}
}

  • getLastModifiedTime(Path path):返回指定文件的最后修改时间。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.FileTime;public class LastModifiedTimeExample {public static void main(String[] args) {Path path = Paths.get("test.txt");try {FileTime lastModifiedTime = Files.getLastModifiedTime(path);System.out.println("文件最后修改时间: " + lastModifiedTime);} catch (IOException e) {e.printStackTrace();}}
}

http://www.xdnf.cn/news/3323.html

相关文章:

  • 车辆检测新突破:VFM-Det 如何用大模型提升识别精度
  • LVGL -按键介绍 上
  • Nginx 重写与重定向配置
  • SpringBoot集成Druid启动报错testWhileIdle is true, validationQuery not set
  • 【功能】根据时区获取开服天数
  • 4:机器人目标识别无序抓取程序二次开发
  • 深度学习正则化:原理、方法与应用深度解析
  • 【Linux服务器安装杀毒软件】
  • 利用v0与Cursor优化开发流程和效率
  • Unity 粒子同步,FishNet
  • 高等数学-第七版-下册 选做记录 习题9-6
  • 2025年4月AI科技领域周报(4.21-4.27):大模型生态加速演进 通用AI开启产业融合新范式
  • Java批量数据处理唯一ID生成优化
  • 如何用AI生成假期旅行照?
  • CUDA编程 - 如何使用 CUDA 流在 GPU 设备上并发执行多个内核 - 如何应用到自己的项目中 - concurrentKernels
  • 希尔伯特第十问题:是一个伪命题
  • 【android bluetooth 案例分析 03】【PTS 测试 】【PBAP/PCE/SSM/BV-10-C】
  • 用.net动态创建类的实例指南方案
  • MoonBit支持国产芯片开发--性能媲美C
  • 从零开始学Python游戏编程47-二维数组1
  • 一种基于光源评估并加权平均的自动白平衡方法(一)
  • 系统分析师-第十五章
  • nacos和redis本地启动
  • 小米MiMo推理大模型开源:7B参数规模超越更大规模模型
  • flutter开发音乐APP(简单的音乐播放demo)
  • StarRocks存算一体集群资源预估
  • 国产工业软件突破路径
  • 【Spring AI】Java结合ollama实现大模型调用
  • Java对集合进行操作,赋值新字段
  • 微前端统一状态树实现方案