1

在我的应用程序中,当它加载时,它会进行一个 Web 调用来检索 JSON 字符串。我想将此 JSON 字符串存储到手机中,这样如果用户失去连接,应用程序就不会崩溃。需要 JSON 字符串来设置应用程序的文本。所以我正在这样做

    File myDir = new File(getFilesDir().getAbsolutePath());

                FileWriter fw = new FileWriter(myDir + "/jsonMain.txt");
                fw.write(sJsonMain);
                fw.close();

然后检索它我正在这样做

    BufferedReader br = new BufferedReader(new FileReader(
                            myDir + "/jsonMain.txt"));
                    sStoredJSON = br.readLine();

它适用于其他 JSON 字符串,但不适用于大型 JSON 字符串。我检查了日志,上面写着

04-26 10:00:44.511: I/global(893): BufferedReader 构造函数中使用的默认缓冲区大小。如果需要 8k 字符的缓冲区,最好是明确的。

有人可以告诉我我还能如何阅读这样的大字符串吗?

提前致谢!!

4

2 回答 2

0

尝试这个:

BufferedReader br = new BufferedReader(new FileReader(
                        myDir + "/jsonMain.txt"), 8); // or a higher value than 8
sStoredJSON = br.readLine();
于 2012-04-26T09:07:05.990 回答
0

您可以在 BufferedReader构造函数中添加缓冲区大小,因此您可以使用之前的 File 对象来确定文件长度并相应地创建缓冲区大小。

于 2012-04-26T09:14:47.187 回答