JAVA SE 文件IO

发布于:2025-05-28 ⋅ 阅读:(24) ⋅ 点赞:(0)


❗❗❗ 编者特别声明 : 本篇博客分享的是仅博主本人在日常开发中经常用到I/O流类 , 方法等. 并不是全部的I/O流知识

📕1. File类的使用

这里主要介绍对文件增删改查的操作 , 不是对文件中的内容进行增删改查

✏️1.1 构造方法
方法 说明
File(File parent, String child) 根据⽗⽬录 + 孩⼦⽂件路径,创建⼀个新的 File 实例
File(String pathname) 根据⽂件路径创建⼀个新的 File 实例,路径可以是绝对路径或者相对路径
File(String parent, String child) 根据⽗⽬录 + 孩⼦⽂件路径,创建⼀个新的 File 实例,⽗⽬录⽤路径表⽰
✏️1.2 常用方法
方法 说明
getParent() 返回 File 对象的⽗⽬录⽂件路径
getName() 返回 FIle 对象的纯⽂件名称
getPath() 返回 File 对象的⽂件路径
getAbsolutePath() 返回 File 对象的绝对路径
getCanonicalPath() 返回 File 对象的修饰过的绝对路径
exists() 判断 File 对象描述的⽂件是否真实存在
isDirectory() 判断 File 对象代表的⽂件是否是⼀个⽬录
isFile() 判断 File 对象代表的⽂件是否是⼀个普通⽂件
createNewFile() 根据 File 对象,⾃动创建⼀个空⽂件。成功创建后返回 true
delete() 根据 File 对象,删除该⽂件。成功删除后返回 true
deleteOnExit() 根据 File 对象,标注⽂件将被删除,删除动作会到 JVM 运⾏结束时才会进⾏
list() 返回 File 对象代表的⽬录下的所有⽂件名
listFiles() 返回 File 对象代表的⽬录下的所有⽂件,以 File 对象表⽰
mkdir() 创建 File 对象代表的⽬录
mkdirs() 创建 File 对象代表的⽬录,如果必要,会创建中间⽬录
renameTo(File dest) 进⾏⽂件改名,也可以视为我们平时的剪切、粘贴操作
canRead() 判断⽤⼾是否对⽂件有可读权限
canWrite() 判断⽤⼾是否对⽂件有可写权限

📕2. I/O流

I/O是Input/Output的缩写。I/O技术是非常实用的技术,用于处理数据传输。如读/写文件,网络通讯等。
Java程序中,对于数据的输入/输出操作以"流(stream)" 的方式进行。
java.io包下提供了各种"流"类和接口,用以获取不同种类的数据,并通过方法输入或输出数据

✏️2.1 I/O流的分类
  1. 按操作数据单位不同分为:字节流(8 bit),字符流(16 bit)
  2. 按数据流的流向不同分为:输入流,输出流
  3. 按流的角色的不同分为:节点流,处理流
抽象基类 字节流 字符流
输入流 InputStream Reader
输出流 OutputStream Writer
✏️2.2 I/O体系

Java的io流共涉及40多个类,实际上非常规则,都是以上述4个抽象基类派生的

在这里插入图片描述

📕3. 字节流

✏️3.1 InputStream类

InputStream 是抽象类 , 我们现在只关心从文件中读取,所以使用 FileInputStream类实例化对象

  1. FileInputStream类的构造方法
方法 说明
FileInputStream(File file) 通过指定的File对象来创建输入流。
FileInputStream(String pathname) 通过指定文件的路径字符串来创建输入流。
  1. FileInputStream类的常见方法
方法 说明
int read() 从输入流中读取一个字节的数据。
int read(byte[] b) 从输入流中读取一定数量的字节到字节数组中,返回长度。
int read(byte[] b, int off, int len) 最多读取 len - off 字节的数据到 b中,放在从 off 开始,返回实际读到的数量;-1 代表以及读完了
void close() 关闭字节流
✏️3.2 OutputStream类

OutputStream 同样只是一个抽象类,要使用还需要具体的实现类。我们现在还是只关心写入文件中,所以使用 FileOutputStream类实例化对象

  1. FileOutputStream的构造方法
方法 说明
FileOutputStream(File file) 通过指定的File对象来创建输出流
FilenOutputStream(String name) 通过指定文件的路径字符串来创建输出流
  1. FileOutputStream的常用方法
方法 说明
write(int b) 写入一个字节到文件。
write(byte[] b) 将一个字节数组写入文件
write(byte[] b, int off, int len) 从字节数组的指定位置开始,写入指定长度的字节到文件
close() 关闭输出流,释放相关资源。

📕4. 字符流

✏️4.1 Reader类

FileReader类主要用于从文件中读取字符数据。它是一个字符输入流,继承自InputStreamReader(转换流),抽象基类为Reader。可以通过构造方法传入文件路径来创建

  1. FileReader的构造方法
方法 说明
FileReader(File file) 创建一个与指定文件对象相关联的FileReader。
FileReader(String fileName) 创建一个与指定文件路径名相关联的FileReader
  1. FileReader的常用方法
方法 说明
int read() 从输入流中读取一个字符,返回该字符的整数表示(到达文件末尾返回 -1)
int read(char[] cbuf) 将字符读入数组。返回读取的长度
void close() 关闭该流并释放与之关联的所有资源。
✏️4.2 Writer类

FileWriter类用于将字符数据写入文件。

  1. FileWriter的常用方法
方法 说明
write(int c) 写入单个字符到文件中。
write(char[] cbuf) 将字符数组写入文件中。
write(String str) 写入字符串到文件中。
write(String str, int off, int len) 写入字符串的一部分到文件中。
flush() 刷新缓冲区,将数据写入文件。
close() 关闭文件并释放相关资源。