读取 UTF-8 属性文件并保存为 UTF-8 txt 文件

Read UTF-8 properties file and save as UTF-8 txt file

我目前正在尝试分析我所有的属性文件,其中一部分需要 .txt 文件形式的属性文件。问题是像 Ä、Ü、Ö 等德语 "Umlaute" 没有被正确接管,因此我的程序无法运行。 (如果我手动将文件转换成 txt 没有问题,但整个过程应该 运行 动态)

这是我目前使用的代码:

private static void createTxt(String filePath, String savePath) throws IOException {
    final File file = new File(filePath);
    final BufferedReader bReader = new BufferedReader(new FileReader(file.getPath()));
    final List<String> stringList= new ArrayList<>();
    String line = bReader.readLine();
    while (line != null) {
      stringList.add(line);
      line = bReader.readLine();
    }
    final Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(savePath), "UTF-8"));
    try {
      for (final String s : stringList) {
        out.write(s + "\n");
      }
    }
    finally {
      out.close();
    }
  }

txt 的编码也是 UTF-8 - 我认为问题是由于 bufferedReader 或缓存到 ArrayList

感谢您的宝贵时间和帮助, LG 帕斯卡

读取和写入文件时,您应该始终设置一个字符集。 FileReader 有一个接受字符集的构造函数。

new FileReader(file, StandardCharsets.UTF_8)

如果您只想读取文件中的所有行,只需使用 Files.readAllLines(path, StandardCharsets.UTF_8);

要写你可以使用Files.write(path, listOfStrings, StandardCharsets.UTF_8);

如果您只想复制文件,只需使用 Files.copy(source, target);