原文: https://www.programiz.com/java-programming/examples/string-from-file

在此程序中,您将学习使用 Java 从给定文件的内容创建字符串的不同技术。

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

这是test.txt的内容

  1. This is a
  2. Test file.

示例 1:从文件创建字符串

  1. import java.io.IOException;
  2. import java.nio.charset.Charset;
  3. import java.nio.charset.StandardCharsets;
  4. import java.nio.file.Files;
  5. import java.nio.file.Paths;
  6. import java.util.List;
  7. public class FileString {
  8. public static void main(String[] args) throws IOException {
  9. String path = System.getProperty("user.dir") + "\\src\\test.txt";
  10. Charset encoding = Charset.defaultCharset();
  11. List<String> lines = Files.readAllLines(Paths.get(path), encoding);
  12. System.out.println(lines);
  13. }
  14. }

运行该程序时,输出为:

  1. [This is a, Test file.]

在上面的程序中,我们使用Systemuser.dir属性获取存储在变量path中的当前目录。 检查 Java 程序:获取当前目录,以获取更多信息。

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

然后,我们使用readAllLines()方法从文件中读取所有行。 它采用文件的path及其encoding,并将所有行作为列表返回,如输出所示。

由于readAllLines也可能会引发IOException,因此我们必须这样定义main方法

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

示例 2:从文件创建字符串

  1. import java.io.IOException;
  2. import java.nio.charset.Charset;
  3. import java.nio.file.Files;
  4. import java.nio.file.Paths;
  5. public class FileString {
  6. public static void main(String[] args) throws IOException {
  7. String path = System.getProperty("user.dir") + "\\src\\test.txt";
  8. Charset encoding = Charset.defaultCharset();
  9. byte[] encoded = Files.readAllBytes(Paths.get(path));
  10. String lines = new String(encoded, encoding);
  11. System.out.println(lines);
  12. }
  13. }

运行该程序时,输出为:

  1. This is a
  2. Test file.

在上述程序中,我们没有获得字符串列表,而是获得了一个包含所有内容的字符串row

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