0

現時点では、応答を電話の内部ストレージに保存しようとしています。データを再度取得しようとするまで、すべてが正常に機能します。取得したデータをログアウトすると、応答の小さなセクションが 1 つだけログアウトされ、残りはそこにありません。古いファイルを使用していた場合に備えて、ファイルを削除してもう一度呼び出してみました。

コードの保存

try {
     String response = apiResponse.getRawResponse();
     Log.e("Response", response);

     FileOutputStream userInfo = openFileOutput("personal_profile", MODE_PRIVATE);
     userInfo.write(response.getBytes());
     userInfo.close();

} catch (Exception e) {
    e.printStackTrace();

コードの取得

 String response = "";

    try {
        FileInputStream fis = getActivity().openFileInput("personal_profile");
        DataInputStream isr = new DataInputStream(fis);
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(isr));
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            sb.append(line);
        }
        line = response;

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    Log.e("Saved File", response);

どんな種類の提案も素晴らしいでしょう!

4

2 に答える 2

1

理由

問題は、反復ごとに line 変数が再度割り当てられることでした

これを試して:

 String response = "";

try {
    FileInputStream fis = getActivity().openFileInput("personal_profile");
    DataInputStream isr = new DataInputStream(fis);
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(isr));
    StringBuilder sb = new StringBuilder();
    String line;
    while ((line = bufferedReader.readLine()) != null) {
        sb.append(line);
    }
    line = response;

} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

最後の行を変更

Log.e("Saved File", sb.toString());
于 2014-08-22T09:25:58.697 に答える
1

これを AndroidManifest.xml ファイルに入れましたか?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

また、このリンクには、ファイルの読み取りと書き込みについて知っておく必要があるすべてが含まれています。

http://www.anddev.org/working_with_files-t115.html


コード::

  String response = "";

    try {
        FileInputStream fis = getActivity().openFileInput("personal_profile");
        DataInputStream isr = new DataInputStream(fis);
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(isr));
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            sb.append(line);
        }
        line = response;

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    Log.e("Saved File", sb.toString());
于 2014-08-22T09:28:11.983 に答える