将文件内容读取到字符串的 Java 程序

要理解此示例,您应该具备以下 Java 编程的知识:

在从文件创建字符串之前,我们假设我们的 src 文件夹中有一个名为 test.txt 的文件。

这是 test.txt 的内容

这是一个测试文件。

示例 1:从文件读取字符串

import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class FileString {

    public static void main(String[] args) throws IOException {

        String path = System.getProperty("user.dir") + "\\src\\test.txt";
        Charset encoding = Charset.defaultCharset();

        List<String> lines = Files.readAllLines(Paths.get(path), encoding);
        System.out.println(lines);
    }
}

输出

[这是一个测试文件。]

在上面的程序中,我们使用 Systemuser.dir 属性来获取系统变量中存储的用户目录的路径. 您可以跳转到 Java Program 以获取当前目录以获取更多信息。

我们用于 defaultCharset() 作为文件的编码。如果您知道文件的编码,请使用它,否则使用默认编码是安全的。

然后,我们使用 readAllLines() 方法从文件中读取所有行。它需要文件路径及其编码作为参数 并将文件中的所有行作为列表返回,如输出所示。

由于 readAllLines 也可能抛出 IOException,我们必须这样定义我们的 main 方法

public static void main(String[] args) throws IOException

示例 2:从文件读取字符串

import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;

public class FileString {

    public static void main(String[] args) throws IOException {

        String path = System.getProperty("user.dir") + "\\src\\test.txt";
        Charset encoding = Charset.defaultCharset();

        byte[] encoded = Files.readAllBytes(Paths.get(path));
        String lines = new String(encoded, encoding);
        System.out.println(lines);
    }
}

输出

这是一个测试文件。

在上面的程序中,我们得到的不是字符串列表,而是单个字符串。

因为我们使用 readAllBytes() 方法从给定路径读取所有字节。然后使用默认值将这些字节转换为字符串.