Java中的IO流中的FileReader和FileWriter函数使用技巧
Java 的 I/O (Input/Output) 流提供了一种方便的方式来读取和写入文件。FileReader 和 FileWriter 是 Java 的 I/O 流中常用的类之一,可以用于读写文件。下面介绍 FileReader 和 FileWriter 的一些使用技巧。
一、FileReader
FileReader 类用于读取字符文件,它的构造函数如下:
FileReader(File file) throws FileNotFoundException
FileReader(String fileName) throws FileNotFoundException
在使用 FileReader 读取文件时需要注意以下几点:
1. FileReader 默认使用本地默认编码读取字符文件。如果字符文件的编码与默认编码不同,则会出现乱码或读取失败的问题。因此,在读取字符文件时 指定文件的编码。
2. 文件的读取是一个耗时的过程,因此可以使用 BufferedReader 类进行封装,提高读取效率。使用 BufferedReader 读取文件时,需要按照以下步骤操作:
(1) 创建 FileReader 对象,用于打开文件
(2) 使用 BufferedReader 对 FileReader 进行封装
(3) 使用 BufferedReader 的 readLine() 方法逐行读取文件内容
(4) 关闭 BufferedReader 和 FileReader
具体实现代码如下:
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
String line;
while ((line = br.readLine()) != null) {
// 处理每行内容
}
br.close();
二、FileWriter
FileWriter 类用于写入字符文件,它的构造函数如下:
FileWriter(File file) throws IOException
FileWriter(String fileName) throws IOException
在使用 FileWriter 写入文件时需要注意以下几点:
1. FileWriter 会覆盖原来的文件内容。如果想在原来的基础上添加新内容,可以使用 FileWriter 的另一种构造函数:
FileWriter(String fileName, boolean append) throws IOException
将 append 设置成 true,就可以在文件末尾追加新内容了。
2. 文件的写入是一个耗时的过程,因此可以使用 BufferedWriter 类进行封装,提高写入效率。使用 BufferedWriter 写入文件时,需要按照以下步骤操作:
(1) 创建 FileWriter 对象,用于打开文件
(2) 使用 BufferedWriter 对 FileWriter 进行封装
(3) 使用 BufferedWriter 的 write() 方法写入文件内容
(4) 关闭 BufferedWriter 和 FileWriter
具体实现代码如下:
BufferedWriter bw = new BufferedWriter(new FileWriter("file.txt"));
bw.write("Hello, world!");
bw.newLine(); // 写入换行符
bw.flush(); // 将缓冲区的内容写入文件
bw.close();
三、总结
FileReader 和 FileWriter 是 Java 的 I/O 流中常用的类之一。在使用这两个类时,需要特别注意文件编码和效率问题。读取文件时可以使用 BufferedReader 进行封装,写入文件时可以使用 BufferedWriter 进行封装。
