1

私のアプリケーションでは、ロード時にJSON文字列を取得するWeb呼び出しを行います。この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 に答える