Java FileWriter 类详细介绍以及用法详解
在本教程中,我们将通过示例了解 Java FileWriter 类以及相关用法。
在本教程中,我们将通过示例了解 Java FileWriter 类以及相关用法。
java.io
包的 FileWriter
类可用于将数据(以字符为单位)写入文件。
FileWriter
类它扩展了 OutputStreamWriter
类。
在您了解更多信息之前 FileWriter
,请务必了解 Java 文件处理。
创建 FileWriter
我们使用 FileWriter
的构造方法创建对象,需要通过构造方法的参数指定要关联的文件路径或文件对象。如下:
-
使用文件路径
FileWriter output = new FileWriter(String name);
在这里,我们创建了一个
FileWriter
对象,并通过文件路径与文件关联起来。 -
使用 File 对象
FileWriter output = new FileWriter(File fileObj);
在这里,我们创建了一个
FileWriter
对象,并通过 File 对象与文件关联起来。
在上面的示例中,都是通过默认字符编码处理文件内容的。但是,从 Java 11 开始,我们可以指定编码了。如下:
FileWriter output = new FileWriter(String file, Charset cs);
在这里,我们使用了 Charset
类来指定 FileWriter
的字符编码。
FileWriter 的方法
FileWriter
类完全实现了 Writer
类定义的所有抽象方法。
write() 方法
write(int char)
- 写入一个字符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 output = new FileWriter("output.txt");
output.write(data);
output.close();
} catch (Exception e) {
e.getStackTrace();
}
}
}
在上面的例子中,我们使用文件路径输出流创建了一个 FileWriter
,与 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.StandardCharsets;
public class Main {
public static void main(String[] args) {
String file = "output.txt";
try {
FileWriter output1 = new FileWriter(file);
FileWriter output2 = new FileWriter(file, StandardCharsets.ISO_8859_1);
System.out.println("Character encoding of output1: " + output1.getEncoding());
System.out.println("Character encoding of output2: " + output2.getEncoding());
output1.close();
output2.close();
} catch (Exception e) {
e.getStackTrace();
}
}
}
输出
Character encoding of output1: UTF8
Character encoding of output2: ISO_8859_1
在上面的例子中,我们创建了 2 个 FileWriter
对象:
output1
不指定字符编码。因此,getEncoding()
方法返回系统默认字符编码名称。output2
指定字符编码ISO_8859_1
。因此,getEncoding()
方法返回指定的字符编码。
FileWriter 的其他方法
方法 | 描述 |
---|---|
flush() |
强制将所有数据写入相应的目的地 |
append() |
将指定字符插入当前 Writer |