将字符串写入 Java 中的文件并读回

Writing strings to a file in Java and reading them back

我在 Java 中有一组字符串(String 个对象),我想将它们写入一个文件,以便稍后检索它们。

我了解到 Java 使用 UTF-16 在内部存储字符串。我担心我可能会因为格式问题而弄乱某些东西,除非我正确地写入和读取字符串。我不想将原始字符串对象转储到文件中,因为我希望能够在标准文本编辑器中打开文件以查看它,其中每个字符串都以合理的方式显示在自己的行中(假设没有字符串包含换行符)。

我可以简单地将 PrintWriter class 与 println(String x) 方法结合使用(假设字符串中没有换行符),并结合扫描仪 class读回它们时的 nextLine() 方法?这能保证我得到完全相同的字符串吗?

另外,假设字符串确实包含换行符,那么正确的写法是什么?我是否应该过滤掉换行符(用一些临时转义代码或类似代码替换它们)并使用 println 方法和 PrintWriter 如上所述?

为了完整起见,我用我最终采用的解决方案来回答我自己的问题。回想起来,解决方案非常简单。呸!

为了编写字符串,我使用 BufferedWriter class,它具有编写字符串的便捷方法。 BufferedWriter的获取方式:

writer = new BufferedWriter(
             new OutputStreamWriter(
                 new FileOutputStream(filename), "UTF-8"));

这里我指定了UTF-8编码,基本上所有的都支持。

为了读回字符串,我使用 BufferedReader class 并确保使用 UTF-8 编码:

reader = new BufferedReader(
             new InputStreamReader(
                 new FileInputStream(filename), "UTF-8"));