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

如何使用Java函数FileWriter来写入文件?

发布时间:2023-06-20 17:11:39

Java 提供了多种方法来读写文件,其中 FileWriter 便是其中一种。FileWriter 可以用来向文件中写入数据,其本质上是一个字节流写入器,可以写入字符、字符串或字节数组。下面我们来介绍如何使用 Java 的 FileWriter 类来写入文件。

1. 创建 FileWriter 对象

在使用 FileWriter 写入文件之前,需要创建一个 FileWriter 对象,该对象表示要写入的文件。要创建 FileWriter 对象,需要提供要写入的文件的路径和文件名,如下所示:

FileWriter writer = new FileWriter("path/filename.txt");

其中,"path/filename.txt" 是文件的路径和文件名。如果文件不存在,则会自动创建该文件;如果文件已存在,那么 FileWriter 将在写入新数据时覆盖该文件中的旧数据。

2. 使用 write() 方法写入数据

有了 FileWriter 对象之后,就可以使用 write() 方法来写入数据了。write() 方法有多个重载形式,可以写入字符、字符串或字节数组。以下是几个例子:

// 写入一个字符

writer.write('A');

// 写入一个字符串

writer.write("Hello, world!");

// 写入一个字符数组

char[] buffer = new char[]{'H', 'e', 'l', 'l', 'o'};

writer.write(buffer);

// 写入指定长度的字符数组

char[] buffer = new char[]{'H', 'e', 'l', 'l', 'o'};

writer.write(buffer, 0, 3);

其中, 个例子写入了一个字符,第二个例子写入了一个字符串,第三个例子写入了一个字符数组,第四个例子写入了一个字符数组中指定长度的字符。

3. 使用 flush() 方法刷新缓冲区

在写入数据时,FileWriter 会将数据先写入缓冲区,之后再将缓冲区中的数据写入文件。如果不手动刷新缓冲区,那么只有当 FileWriter 对象被关闭时,缓冲区中的数据才会被写入文件。要手动刷新缓冲区,可以使用 flush() 方法,如下所示:

writer.flush();

4. 使用 close() 方法关闭 FileWriter 对象

在写入文件完成后,需要使用 close() 方法来关闭 FileWriter 对象。这将释放所有 FileWriter 对象占用的系统资源,并确保缓冲区中尚未写入的数据被写入文件。在调用 close() 方法之后,不能再使用该 FileWriter 对象。

writer.close();

完整示例代码:

以下是一个完整的示例代码,演示如何使用 FileWriter 写入文件:

import java.io.FileWriter;

import java.io.IOException;

public class FileWriterExample {

    public static void main(String[] args) {

        try {

            // 创建 FileWriter 对象

            FileWriter writer = new FileWriter("test.txt");

            // 写入数据

            writer.write("Hello, world!");

            // 刷新缓冲区

            writer.flush();

            // 关闭 FileWriter 对象

            writer.close();

        }

        catch (IOException ex) {

            ex.printStackTrace();

        }

    }

}

该程序将会在项目的根目录下创建一个名为 test.txt 的文件,并向其中写入一串文字:Hello, world!。