如何创建文件并写入其中?

2022-08-31 03:56:02

在Java中创建和写入(文本)文件的最简单方法是什么?


答案 1

请注意,下面的每个代码示例都可能引发 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);

答案 2

在 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)。