Android从文件中读取大型String

时间:2012-04-26 09:02:41

标签: java android

在我的应用程序中,当它加载时,它会进行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-char缓冲区,最好是明确的。

有人可以告诉我,我怎么能读到像这样的大字符串?

提前致谢!!

2 个答案:

答案 0 :(得分:0)

试试这个:

BufferedReader br = new BufferedReader(new FileReader(
                        myDir + "/jsonMain.txt"), 8); // or a higher value than 8
sStoredJSON = br.readLine();

答案 1 :(得分:0)

您可以在BufferedReader constructor上添加缓冲区大小,这样您就可以使用以前的File对象来确定文件lenght并相应地创建缓冲区大小。