使用Java将字符串写入文件并将其读回

时间:2015-03-13 10:15:54

标签: java string readfile writefile

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

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

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

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

1 个答案:

答案 0 :(得分: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"));
相关问题