【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();

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

在这里插入图片描述

相关文章
|
1天前
|
Java
类信息的“隐形守护者”:JAVA反射技术全揭秘
【7月更文挑战第1天】Java反射技术是动态获取类信息并操作对象的强大工具。它基于Class对象,允许在运行时创建对象、调用方法和改变字段。例如,通过`Class.forName()`动态实例化对象,`getMethod()`调用方法。然而,反射可能破坏封装,影响性能,并需处理异常,故使用时需谨慎。它是Java灵活性的关键,常见于框架设计中。
6 0
|
1天前
|
Java Unix 大数据
解密tar文件解压的Java实现技术
解密tar文件解压的Java实现技术
|
1天前
|
安全 Java
解决Java中集合类的内存占用问题
解决Java中集合类的内存占用问题
|
1天前
|
Java
如何在Java中优雅地处理大文件?
如何在Java中优雅地处理大文件?
|
1天前
|
Java
深入理解Java中的类与对象:封装、继承与多态
深入理解Java中的类与对象:封装、继承与多态
|
1天前
|
Java 容器
Java中使用Optional类的建议
Java中使用Optional类的建议
|
6天前
|
存储 自然语言处理 Java
Java IO流完全手册:字节流和字符流的常见应用场景分析!
【6月更文挑战第26天】Java IO流涵盖字节流和字符流,字节流用于二进制文件读写及网络通信,如图片和音频处理;字符流适用于文本文件操作,支持多语言编码,确保文本正确性。在处理数据时,根据内容类型选择合适的流至关重要。
|
6天前
|
自然语言处理 Java
Java IO流进阶教程:掌握字节流和字符流的高级用法!
【6月更文挑战第26天】Java IO流助你高效交换数据,包括字节流(InputStream/OutputStream)和字符流(Reader/Writer)的高级技巧。缓冲流(Buffered*)提升读写性能,对象流(Object*Stream)支持对象序列化。字符流的BufferedReader/BufferedWriter优化文本处理,注意字符集如UTF-8用于编码转换。掌握这些,优化IO操作,提升代码质量。
|
6天前
|
Java 测试技术
Java IO流深度剖析:字节流和字符流的性能对比!
【6月更文挑战第26天】Java IO流分字节流和字符流,字节流处理所有类型数据(如图片),字符流处理文本(基于Unicode)。字节流直接处理,性能高,适合非文本文件;字符流处理文本时考虑编码,适合文本文件。性能测试显示,字节流在读写非文本文件时更快,而字符流在处理文本时更方便。选择流类型应依据数据类型和需求。
|
6天前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
【6月更文挑战第26天】Java IO流涵盖字节流与字符流。字节流(InputStream/OutputStream)处理数据单位为字节,适用于二进制和文本,而字符流(Reader/Writer)专注于文本,处理单位为字符,处理编码转换。字符流在字节流基础上添加编码处理,以装饰器模式实现。文件复制示例展示了两者区别:字节流直接复制所有数据,字符流处理字符编码。理解并选择适当流类型对优化程序至关重要。

热门文章

最新文章