文件 I/O 操作指的是对文件进行输入和输出操作,包括读取文件内容、写入数据到文件以及对文件进行修改等操作。在 Java 中,文件 I/O 操作主要通过使用输入流和输出流来完成。
Java 中常用的文件 I/O 类和接口包括:
-
InputStream 和 OutputStream:是字节流的抽象类,用于读取和写入字节数据。常用的实现类有 FileInputStream、FileOutputStream。
-
Reader 和 Writer:是字符流的抽象类,用于读取和写入字符数据。常用的实现类有 FileReader、FileWriter。
-
File:用于表示文件或目录的抽象类,提供了一些方法用于操作文件属性、创建/删除文件,以及获取文件的大小、修改时间等信息。
-
BufferedReader 和 BufferedWriter:是字符缓冲流,对 Reader 和 Writer 进行了缓冲处理,提供了高效的字符读写操作。
-
FileReader 和 FileWriter:是 Reader 和 Writer 的具体实现类,用于读取和写入字符数据。
-
RandomAccessFile:是用于随机访问文件的类,可以读取和写入文件的任意位置,支持随机读写操作。
上述类和接口提供了针对不同需求的文件 I/O 操作方法,可以根据具体场景灵活选择使用。
文件 I/O 操作一般需要进行异常处理,包括 FileNotFoundException、IOException 等异常。可以使用 try-catch-finally 块来处理异常,确保文件 I/O 操作的正常进行,并在使用完流后关闭流资源以释放内存。
例如,以下示例演示了如何使用 FileReader 和 BufferedReader 来读取文本文件的内容:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileReadExample {
public static void main(String[] args) {
try (FileReader fileReader = new FileReader("example.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader)) {
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上述示例中,我们使用 FileReader 和 BufferedReader 来读取一个名为 “example.txt” 的文本文件,并逐行打印文件内容。在 try-with-resources 语句中创建文件流,使用 BufferedReader 的 readLine() 方法读取每一行内容,直到文件结束。
需要注意的是,在使用完流资源后,通过 try-with-resources 语句自动关闭流,无需手动调用 close() 方法。