English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java Grund教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java Ausnahmebehandlung

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java FileWriter Class

在本教程中,我们将借助示例学习 Java FileWriter 及其方法。

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

它继承了 OutputStreamWriter 类。

在进一步了解 FileWriter 之前,请确保了解Java File.

创建一个 FileWriter

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

1.使用文件名

FileWriter output = new FileWriter(String 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 = "This is the data in the output file";
    try {
      // 创建 FileWriter
      FileWriter output = new FileWriter("output.txt");
      // 将字符串写入文件
      output.write(data);
      //关闭 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 {
      //使用默认编码创建一个FileReader
      FileWriter output1 = new FileWriter(file);
      //创建一个FileReader指定编码
      FileWriter output2 = new FileWriter(file, Charset.forName("UTF8");
      //返回阅读器的字符编码
      System.out.println("output1的字符编码: " + output1.getEncoding());
      System.out.println("output2的字符编码: " + output2.getEncoding());
      // Close reader
      output1.close();
      output2.close();
    }
    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Output Result

output1character encoding: Cp1252
output2character encoding: UTF8

In the above example, we created2file writers, named output1and output2.

  • output1No character encoding is specified. Therefore, the getEncoding() method returns the default character encoding.

  • output2Specify Character EncodingUTF8. Therefore, the getEncoding() method returns the specified character encoding.

Note: We have specified the type of character encoding using the Charset.forName() method.

close() Method

To close the file writer, we can use the close() method. Once the close() method is called, the writer cannot be used to write data.

Other Methods of FileWriter

MethodDescription
flush()Force all data existing in the writer to be written to the corresponding destination
append()Insert the specified character into the current writer