欢迎访问宙启技术站
智能推送

Java中的IO流中的FileReader和FileWriter函数使用技巧

发布时间:2023-06-19 12:34:17

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 进行封装。