【Java I/O 流】文件的操作——java.io.File 类详解

简介: 最近遇到了一些文件流读写的问题,发现对这块知识掌握的还不够系统,所以花了一些时间将 Java IO 流相关的知识整理了一下,也在这里分享给你们,希望能够有所帮助。先来看第一篇:本文讲述了计算机文件的基本知识,以及 Java 中如何使用 File 类来操作文件的。

在这里插入图片描述

❤️ 个人主页:水滴技术
🚀 支持水滴:点赞👍 + 收藏⭐ + 留言💬
🌸 订阅专栏:Java 教程:从入门到精通

大家好,我是水滴~~

最近遇到了一些文件流读写的问题,发现对这块知识掌握的还不够系统,所以花了一些时间将 Java IO 流相关的知识整理了一下,也在这里分享给你们,希望能够有所帮助。

先来看第一篇:本文讲述了计算机文件的基本知识,以及 Java 中如何使用 File 类来操作文件的。

第一章 什么是文件

计算机文件是以计算机硬盘为载体,存储在计算机上的信息集合。文件有很多种类型,例如:文本文件、图片文件、音频文件、视频文件、压缩文件、Word 文件等。

在这里插入图片描述

计算机文件又可分为两大类:文本文件和二进制文件。我们知道,计算机文件的存储在物理上是二进制的,所以文本文件和二进制文件的区别并不是物理上,而是在逻辑上。
文本文件是基于字符编码的文件,常见的编码有 ASCII 编码、UNICODE 编码等。二进制文件是基于值编码的文件,即每个应用有一套自己的编码格式(自定义编码)。

第二章 File 类

Java 中 java.io.File 类是文件和目录路径名的抽象表示,用于操作本地文件或目录。该类有四个构造方法,用于创建 File 的实例。

2.1 构造方法一

通过路径名字符串创建一个新 File 实例。

File(String pathname)

例如:

File file2 = new File("C:/io_demo/file2.txt");

2.2 构造方法二

通过父 File 实例和子路径名字符串创建一个新的 File实例。

File(File parent, String child);

例如:

File file1 = new File(new File("C:/io_demo"), "file1.txt");

2.3 构造方法三

通过父路径名字符串和子路径名字符串创建一个新 File 实例。

File(String parent, String child)

例如:

File file3 = new File("C:/io_demo", "file3.txt");

2.4 构造方法四

通过 URI 实例来创建一个新的 File 实例。

File(URI uri)

例如:

File file4 = new File(new URI("file:/C:/io_demo/file4.txt"));

第三章 File 类的常用方法

下面列出了 File 类的一些常用方法:

3.1 创建目录

先创建一个指定目录的 File 实例,调用该实例的mkdirsmkdir 方法来创建路径(mkdir 用于创建一级目录;mkdirs 用于创建多级目录,我们一般使用此方法)。

File file = new File("C:/io_demo/path1");
file.mkdirs();

3.2 创建文件

调用 File 实例的 createNewFile 方法来创建一个空文件。如果文件所属目录不存在,会抛出异常,所以应先创建好目录。

File file = new File("C:/io_demo/file5.txt");
try {
   
   
    file.createNewFile();
} catch (IOException e) {
   
   
    e.printStackTrace();
}

3.3 是否存在

调用 File 实例的 exists 方法可以判断该文件或目录是否存在。

File file = new File("C:/io_demo/file5.txt");
System.out.println(file.exists());

3.4 是否为目录

isDirectory 方法判断 File 是否为目录。

File file = new File("C:/io_demo/path1");
System.out.println(file.isDirectory());

3.5 是否为文件

isFile 方法判断 File 是否为文件。

File file = new File("C:/io_demo/file5.txt");
System.out.println(file.isFile());

3.6 获取文件名

getPath 方法获取文件完整路径;getParent 方法获取文件所属目录;getName 方法获取文件名称。

File file = new File("C:/io_demo/file5.txt");
System.out.println(file.getPath());
System.out.println(file.getParent());
System.out.println(file.getName());

3.7 获取最后修改时间

通过 lastModified 方法获取文件的最后修改时间。返回值为时间戳,可以将其转换为时间字符串。

File file = new File("C:/io_demo/file5.txt");
System.out.println(file.lastModified());

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(format.format(new Date(file.lastModified())));

3.8 列出目录中所有文件

通过 list 方法列出所有文件和目录字符串名。

File file = new File("C:/io_demo");
for (String s : file.list()) {
   
   
    System.out.println(s);
}

3.9 删除文件或目录

delete 方法用于删除文件或目录。

File file = new File("C:/io_demo/file5.txt");
file.delete();

好了,今天先到这里吧,如果以上内容对你有所帮助,别忘了给我来个关注和三连哦。感谢您的阅读~~

在这里插入图片描述

相关文章
|
8天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
28 2
|
2天前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
|
7天前
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。
|
11天前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
29 2
|
11天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
15天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
55 4
|
16天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
34 2
|
6月前
|
存储 Java 数据安全/隐私保护
从零开始学习 Java:简单易懂的入门指南之IO字符流(三十一)
从零开始学习 Java:简单易懂的入门指南之IO字符流(三十一)
|
1月前
|
Java 数据处理 开发者
揭秘Java IO流:字节流与字符流的神秘面纱!
揭秘Java IO流:字节流与字符流的神秘面纱!
35 1
|
1月前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
Java IO流全解析:字节流和字符流的区别与联系!
80 1
下一篇
无影云桌面