Java FileWriter 类

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

它继承自OutputStreamWriter类。

The FileWriter is a subclass of OutputStreamWriter and the OutputStreamWriter is subclass of the Java Writer.

在了解更多关于FileWriter的信息之前,请确保了解Java File


创建 FileWriter

为了创建文件写入器,我们必须首先导入Java.io.FileWriter包。导入包后,我们可以这样创建文件写入器。

1. 使用文件名

FileWriter output = new FileWriter(String name);

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

2. 使用文件对象

FileWriter  input = new FileWriter(File fileObj);

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

在上面的示例中,数据是使用某种默认字符编码存储的。

但是,自Java 11起,我们还可以指定字符编码的类型(**UTF8**或**UTF16**)。

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 = "This is the data in the output file";

    try {
      // Creates a FileWriter
      FileWriter output = new FileWriter("output.txt");

      // Writes the string to the file
      output.write(data);

      // Closes the writer
      output.close();
    }

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

在上面的示例中,我们创建了一个名为output的文件写入器。输出读取器与**output.txt**文件链接。

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

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

当我们运行程序时,**output.txt**文件将被以下内容填充。

This is a line of text inside the file.

getEncoding() 方法

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

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

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

    String file = "output.txt";

    try {
      // Creates a FileReader with default encoding
      FileWriter output1 = new FileWriter(file);

      // Creates a FileReader specifying the encoding
      FileWriter output2 = new FileWriter(file, Charset.forName("UTF8"));

      // Returns the character encoding of the reader
      System.out.println("Character encoding of output1: " + output1.getEncoding());
      System.out.println("Character encoding of output2: " + output2.getEncoding());

      // Closes the reader
      output1.close();
      output2.close();
    }

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

输出

The character encoding of output1: Cp1252
The character encoding of output2: UTF8

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

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

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


close() 方法

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


FileWriter的其他方法

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

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

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战