文件写入

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将学习如何使用 Java 编程语言将数据写入文件。当你需要存储程序生成的数据以供将来使用时,将数据写入文件会非常有用。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("`Java`")) -.-> java/FileandIOManagementGroup(["`File and I/O Management`"]) java/FileandIOManagementGroup -.-> java/files("`Files`") java/FileandIOManagementGroup -.-> java/create_write_files("`Create/Write Files`") java/FileandIOManagementGroup -.-> java/io("`IO`") java/FileandIOManagementGroup -.-> java/nio("`NIO`") subgraph Lab Skills java/files -.-> lab-117457{{"`文件写入`"}} java/create_write_files -.-> lab-117457{{"`文件写入`"}} java/io -.-> lab-117457{{"`文件写入`"}} java/nio -.-> lab-117457{{"`文件写入`"}} end

打开/创建文件

第一步是打开或创建我们想要写入数据的文件。我们将在 ~/project 目录下创建一个名为 output.txt 的新文件。

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {
    public static void main(String[] args) {
        Path path = Paths.get("~/project/output.txt");
    }
}

将字符串写入文件

现在我们已经打开了文件,可以将字符串写入其中。这是通过 Files.write() 方法完成的。

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;

public class Main {
    public static void main(String[] args) throws IOException {
        Path path = Paths.get("~/project/output.txt");
        String content = "This is some text that we want to write to the file";

        Files.write(path, content.getBytes());
    }
}

在这里,我们通过将字符串转换为字节并将其传递给 Files.write() 方法来将字符串写入文件。需要注意的是,我们需要使用 getBytes() 方法将字符串转换为字节。

要在终端中运行上述代码,首先需要导航到终端中的项目目录,然后执行以下命令:

javac Main.java && java Main

将字符串列表写入文件

我们也可以使用 Files.write() 方法将字符串列表写入文件,如下所示:

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) throws IOException {
        Path path = Paths.get("~/project/output.txt");
        List<String> lines = Arrays.asList("This is line 1", "This is line 2", "This is line 3");

        Files.write(path, lines, StandardCharsets.UTF_8);
    }
}

在这里,我们将字符串列表写入文件。需要注意的是,我们使用了 Files.write() 方法的一个重载版本,该版本接受一个字符串列表作为参数。

要执行上述代码以将字符串列表写入文件,首先需要导航到终端中的项目目录,然后执行以下命令:

javac Main.java && java Main

追加写入文件

如果你希望在写入数据时不覆盖文件中已有的数据,可以在打开文件时使用 StandardOpenOption.APPEND 选项。这会将新数据追加到文件的末尾。

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
import java.nio.file.StandardOpenOption;

public class Main {
    public static void main(String[] args) throws IOException {
        Path path = Paths.get("~/project/output.txt");
        List<String> lines = Arrays.asList("This is line 4", "This is line 5", "This is line 6");

        Files.write(path, lines, StandardCharsets.UTF_8, StandardOpenOption.APPEND);
    }
}

在这里,我们向 Files.write() 方法添加了 StandardOpenOption.APPEND 选项,这告诉 Java 将新数据追加到文件末尾,而不是覆盖现有数据。

要执行追加操作,首先需要导航到终端中的项目目录,然后执行以下命令:

javac Main.java && java Main

关闭文件

最后,我们需要使用 Files.close() 方法关闭文件。这将确保在文件关闭之前,所有缓冲的数据都被写入文件。

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
import java.nio.file.StandardOpenOption;

public class Main {
    public static void main(String[] args) throws IOException {
        Path path = Paths.get("~/project/output.txt");
        String content = "This is some text that we want to write to the file";

        Files.write(path, content.getBytes());
        Files.write(path, System.lineSeparator().getBytes(), StandardOpenOption.APPEND);
        Files.write(path, "This is a new line".getBytes(), StandardOpenOption.APPEND);

        Files.close();
    }
}

总结

在本实验中,我们学习了如何使用 Java 的 Files 类将数据写入文件。我们了解了如何将字符串写入文件、将字符串列表写入文件、追加写入文件以及关闭文件。希望你现在能够借助 Java 的 Files 类轻松地完成文件写入操作。

您可能感兴趣的其他 Java 教程