跳到主要内容

Java FileWriter 类

提示
  1. 字符数据写入FileWriter 类用于将字符数据写入文件,扩展自 OutputStreamWriter 类。
  2. 创建 FileWriter:可以通过文件名或文件对象创建 FileWriter 实例,Java 11 之后还可以指定字符编码。
  3. FileWriter 方法:提供 write() 方法用于写入字符、字符数组或字符串,getEncoding() 获取编码类型,以及 close() 方法用于关闭写入器。

java.io 包中的 FileWriter 类可用于将数据(以字符为单位)写入文件。

它扩展了 OutputStreamWriter 类。

FileWriter 是 OutputStreamWriter 的子类,而 OutputStreamWriter 是 Java Writer 的子类。

在深入了解 FileWriter 之前,请确保您了解 Java 文件

创建 FileWriter

为了创建文件写入器,我们首先必须导入 Java.io.FileWriter 包。导入包后,以下是我们如何创建文件写入器的方法。

1. 使用文件的名称

FileWriter output = new FileWriter(String name);

在这里,我们创建了一个文件写入器,它将链接到由 name 指定的文件。

2. 使用文件对象

FileWriter  input = new FileWriter(File fileObj);

在这里,我们创建了一个文件写入器,它将链接到由文件对象指定的文件。

在上述示例中,数据使用了一些默认的字符编码。

然而,自从 Java 11 起,我们也可以指定字符编码的类型(UTF8UTF16)。

FileWriter input = new FileWriter(String file, Charset cs);

在这里,我们使用了 Charset 类来指定文件写入器的字符编码。

FileWriter 的方法

FileWriter 类为 Writer 类中的不同方法提供了实现。

write() 方法

  • write() - 向写入器写入单个字符
  • write(char[] array) - 将指定数组中的字符写入写入器
  • write(String data) - 将指定字符串写入写入器

示例:使用 FileWriter 将数据写入文件

import java.io.FileWriter;

public class Main {

public static void main(String args[]) {

String data = "这是输出文件中的数据";

try {
// 创建 FileWriter
FileWriter output = new FileWriter("output.txt");

// 将字符串写入文件
output.write(data);

// 关闭写入器
output.close();
}

catch (Exception e) {
e.getStackTrace();
}
}
}

在上述示例中,我们创建了一个名为 output 的文件写入器。该输出写入器与 output.txt 文件关联。

FileWriter output = new FileWriter("output.txt");

为了将数据写入文件,我们使用了 write() 方法。

运行程序时,output.txt 文件将填充以下内容。

这是文件中的一行文本。

getEncoding() 方法

getEncoding() 方法可以用来获取用于写入数据的编码类型。例如,

import java.io.FileWriter;
import java.nio.charset.Charset;

class Main {
public static void main(String[] args) {

String file = "output.txt";

try {
// 创建一个使用默认编码的 FileWriter
FileWriter output1 = new FileWriter(file);

// 创建一个指定编码的 FileWriter
FileWriter output2 = new FileWriter(file, Charset.forName("UTF8"));

// 返回写入器的字符编码
System.out.println("output1 的字符编码: " + output1.getEncoding());
System.out.println("output2 的字符编码: " + output2.getEncoding());

// 关闭写入器
output1.close();
output2.close();
}

catch(Exception e) {
e.getStackTrace();
}
}
}

输出

output1 的字符编码: Cp1252
output2 的字符编码: UTF8

在上述示例中,我们创建了两个名为 output1output2 的文件写入器。

  • output1 没有指定字符编码。因此,getEncoding() 方法返回默认的字符编码。
  • output2 指定了字符编码,UTF8。因此,getEncoding() 方法返回指定的字符编码。

注意:我们使用了 Charset.forName() 方法来指定字符编码的类型。要了解更多,请访问 Java Charset(官方 Java 文档)

close() 方法

要关闭文件写入器,我们可以使用 close() 方法。一旦调用 close() 方法,我们就不能再使用写入器来写入数据。

FileWriter 的其他方法

方法描述
flush()强制将写入器中的所有数据写入相应目的地
append()在当前写入器中插入指定的字符

要了解更多,请访问 Java FileWriter(官方 Java 文档)