0

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

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

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

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

4

1 回答 1

1

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

要编写字符串,我使用BufferedWriter具有编写字符串的便捷方法的类。BufferedWriter 是通过以下方式获得的:

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

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

要读回字符串,我使用BufferedReader该类并确保使用 UTF-8 编码:

reader = new BufferedReader(
             new InputStreamReader(
                 new FileInputStream(filename), "UTF-8"));
于 2016-01-07T11:13:46.900 回答