JAVA BIO File 文件

本文涉及的产品
性能测试 PTS,5000VUM额度
容器镜像服务 ACR,镜像仓库100个 不限时长
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 【1月更文挑战第2天】JAVA BIO File 文件

JavaIOAPI中的Filejava.io.File允许访问底层文件系统。使用JavaFile类,可以:

  • 检查是否存在文件或目录。
  • 如果目录不存在,创建一个目录。
  • 读取文件的长度。
  • 重命名或移动文件。
  • 删除文件。
  • 检查路径是文件还是目录。
  • 读取目录中的文件列表。

注意:JavaFile类只允许您访问文件和目录元数据。

如果您需要读取或写入文件的内容,则应使用FileInputStreamFileOutputStreamRandomAccessFile

  • File类的一个对象,代表一个文件或者一个文件目录(文件夹)
  • File类声明在java.io包下
  • File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或者读取文件内容的操作,如果需要读取或写入文件内容,必须使用IO流来完成。后续File类的对象常会作为参数传递到流的构造器中,指明读取或者写入的目标地址。

2.1 创建 File 实例:

  • File(String filePath)
  • File(String parenPath, String childPath)
  • File(File parentFile, String childPath)

注意:路径分隔符:

  • Windows:\\
  • Unix:/

在IDEA中,如果使用JUnit单元测试方法测试,相对路径即为当前Module。如果使用main()测试,相对路径即为当前的Project

File file = new File("C:\\TestCodeProject\\test.txt");

File类相关API

  • getAbsolutePath():获取当前File文件存在的绝对路径
  • getPath():获取路径
  • getName():获取名称
  • getParent():获取上层文件目录路径。若无,则返回null
  • length():获取文件长度(如:字节数)。不能获取目录的长度。
  • lastModified():获取最后一次的修改时间,毫秒值

适用于文件目录方法:

  • list():获取指定目录下的所有文件或者文件目录的名称组成的数组
  • listFiles():获取指定目录下的所有文件或者文件目录的File数组

2.2 检查文件和目录存在:

可以通过exists()方法测试File(文件或者目录)是否存在。返回一个boolean类型的值表示存在与否。

File file = new File("c:\\data\\input-file.txt");
boolean fileExists = file.exists();

2.3 创建文件目录:

File类提供了两个创建文件目录的APImkdir()mkdirs()

  • mkdir():只能创建一级目录,返回一个Boolean类型标识文件目录是否创建成功。
File file = new File("hello");
boolean success = file.mkdir();
  • mkdirs():创建多级目录,在创建目录的过程中会把缺少的所有目录层级都创建出来
File file = new File("hello\\test\\01");
boolean mkdir = file.mkdirs();

2.4 获取文件大小:

File提供了可以读取文件所占字节数量APIlength()

File file = new File("test.txt");
long length = file.length();

2.5 移动、重命名文件和目录:

可以通过renameTo()方法将文件移动到指定的目录,或者移动到当前目录重命名文件。

File file = new File("test.txt");
boolean success = file.renameTo(new File("test-move.txt"));


delete()方法可以直接删除文件和文件目录:

File file = new File("c:\\data\\input-file.txt");
boolean success = file.delete();

Java提供Filedelete()方法只能在目录为空时删除该目录。要删除包含文件和子目录的目录,必须遍历该目录并首先删除所有文件和子文件夹,然后才能删除根目录。此迭代必须递归执行,因此您还可以删除子目录及其子目录的所有内容。否则,根目录的删除将失败。

这里提供了一个Java方法,可以递归地删除一个目录及其所有子目录及其文件:

public static boolean deleteDir(File dir){
    File[] files = dir.listFiles();
    if(files != null){
        for(File file : files){
            if(file.isDirectory()){
                deleteDir(file);
            } else {
                file.delete();
            }
        }
    }
    return dir.delete();
}

2.7 判断文件还是文件目录:

通过isDirectory()方法判断一个File实例是文件还是目录:

File file = new File("c:\\data");
boolean isDirectory = file.isDirectory();

2.8 读取文件和目录列表:

可以通过调用list()方法或listFiles()方法来获取目录中所有文件的列表。list()方法返回一个String数组,其中包含file对象所指向目录的文件名和/或目录名。listFiles()返回一个file对象数组,表示file所指向目录中的文件或文件夹。

File file = new File("c:\\data");
String[] fileNames = file.list();
File[]   files = file.listFiles();
相关文章
|
1天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
9 2
|
5天前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
13 2
|
13天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
14天前
|
Java 编译器 Maven
Java“class file contains wrong class”解决
当Java程序运行时出现“class file contains wrong class”错误,通常是因为类文件与预期的类名不匹配。解决方法包括:1. 确保类名和文件名一致;2. 清理并重新编译项目;3. 检查包声明是否正确。
|
15天前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
23 4
|
17天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
17天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
19天前
|
缓存 Java 程序员
Java|SpringBoot 项目开发时,让 FreeMarker 文件编辑后自动更新
在开发过程中,FreeMarker 文件编辑后,每次都需要重启应用才能看到效果,效率非常低下。通过一些配置后,可以让它们免重启自动更新。
23 0
|
Java
java读写file
private static String encoding = "utf-8"; public static void readTxt(String filePath) throws IOException { File file = new File(filePath); if (file.
795 0