如何创建文件并写入其中?
在Java中创建和写入(文本)文件的最简单方法是什么?
请注意,下面的每个代码示例都可能引发 IOException
。为了简洁起见,尝试/捕获/最终块已被省略。有关异常处理的信息,请参阅本教程。
请注意,下面的每个代码示例都将覆盖该文件(如果已存在)
创建文本文件:
PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
writer.println("The first line");
writer.println("The second line");
writer.close();
创建二进制文件:
byte data[] = ...
FileOutputStream out = new FileOutputStream("the-file-name");
out.write(data);
out.close();
Java 7+ 用户可以使用 Files
类写入文件:
创建文本文件:
List<String> lines = Arrays.asList("The first line", "The second line");
Path file = Paths.get("the-file-name.txt");
Files.write(file, lines, StandardCharsets.UTF_8);
//Files.write(file, lines, StandardCharsets.UTF_8, StandardOpenOption.APPEND);
创建二进制文件:
byte data[] = ...
Path file = Paths.get("the-file-name");
Files.write(file, data);
//Files.write(file, data, StandardOpenOption.APPEND);
在 Java 7 及更高版本中:
try (Writer writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("filename.txt"), "utf-8"))) {
writer.write("something");
}
不过,有一些有用的实用程序:
还要注意,您可以使用 ,但它使用默认编码,这通常是一个坏主意 - 最好显式指定编码。FileWriter
以下是Java 7之前的原始答案
Writer writer = null;
try {
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("filename.txt"), "utf-8"));
writer.write("Something");
} catch (IOException ex) {
// Report
} finally {
try {writer.close();} catch (Exception ex) {/*ignore*/}
}
另请参见:读取、写入和创建文件(包括 NIO2)。