Java 写入文件
写入文件
如果您是 Java 初学者,将文本写入文件的最简单方法是使用 FileWriter 类。
在下面的示例中,我们使用FileWriter及其write()方法来创建文件并写入一些文本。
注意:完成后,您应该使用 close() 方法关闭写入器:
示例
import java.io.FileWriter; // 导入 FileWriter 类
import java.io.IOException; // 导入 IOException 类
public class WriteToFile {
public static void main(String[] args) {
try {
FileWriter myWriter = new FileWriter("filename.txt");
myWriter.write("Files in Java might be tricky, but it is fun enough!");
myWriter.close(); // must close manually
System.out.println("Successfully wrote to the file.");
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
输出结果为:
Successfully wrote to the file.
说明: 此程序尝试向名为 filename.txt 的文件中写入一些文本。如果一切正常,程序将在控制台打印 "文件写入成功。"。如果出现错误(例如,文件无法打开),则会打印 "发生错误。"。
使用 try-with-resources 写入文件
从 Java 7 开始,您可以使用 try-with-resources。这样即使发生错误,写入器也能自动关闭。
示例
import java.io.FileWriter;
import java.io.IOException;
public class WriteToFile {
public static void main(String[] args) {
// FileWriter 将在此处自动关闭。
try (FileWriter myWriter = new FileWriter("filename.txt")) {
myWriter.write("Files in Java might be tricky, but it is fun enough!");
System.out.println("Successfully wrote to the file.");
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
输出结果为:
Successfully wrote to the file.
追加到文件
通常情况下,FileWriter 会覆盖已存在的文件。如果您想在文件末尾添加新内容(而不删除已有内容),可以使用双参数构造函数,并将true作为第二个参数传递。这将使写入器进入追加模式:
示例
import java.io.FileWriter;
import java.io.IOException;
public class AppendToFile {
public static void main(String[] args) {
// true = append mode
try (FileWriter myWriter = new FileWriter("filename.txt", true)) {
myWriter.write("
Appended text!");
System.out.println("Successfully appended to the file.");
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
输出结果为:
Successfully appended to the file.
说明:此程序会在 filename.txt 文件末尾添加文本 Appended text!(附加文本!),而不是替换文件内容。
注意:如果文件不存在,Java 会在追加内容之前创建它。
提示:要查看文件内容,请参阅Java 读取文件章节。
其他写入文件的方法
在 Java 中,您可以使用以下几种类来写入文件:
FileWriter- 处理基本文本的最简单选择。BufferedWriter- 更适合大型文本文件,因为它速度更快,并且支持一些便捷的功能。FileOutputStream- 最适合二进制数据(图像、音频、PDF)。
您将在后面的章节中了解更多关于FileOutputStream和BufferedWriter的内容。

