4

次のように、Android アプリケーションでファイルを作成しています。


HEADINGSTRING = new String("Android Debugging " + "\n"
                    "XML test Debugging");

}

public void setUpLogging(Context context){

    Log.d("LOGGING", "Setting up logging.....");
    try { // catches IOException below

         FileOutputStream fOut = context.openFileOutput(FILE_NAME,Context.MODE_APPEND);

         OutputStreamWriter osw = new OutputStreamWriter(fOut); 

         // Write the string to the file

         osw.write(HEADINGSTRING);

        /* ensure that everything is

        * really written out and close */

        osw.flush();

       osw.close();

} catch (FileNotFoundException e) {

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

    e.printStackTrace();
}
    finally{
        Log.d("LOGGING", "Finished logging setup.....");
    }
}

そして、アプリの実行中に次のようにファイルに書き込みます。


public void  addToLog(File file, String text) throws IOException {

         BufferedWriter bw = new BufferedWriter (new FileWriter(file, true));

         bw.write ("\n" + text);

         bw.newLine();

         bw.flush();
         bw.close();
}

これは正常に機能しますが、アプリを閉じるとファイルが削除され、アプリを再度実行すると、書き込んだすべての情報が失われます。

アプリを閉じた後もファイルが保持されるようにするにはどうすればよいですか?

アップデート:

MODE_PRIVATE を MODE_APPEND に変更し、問題は解決しました。Skirmish に感謝します。

4

1 に答える 1

1

アプリを起動するたびにすべてをクリアするのではなく、http://developer.android.com/reference/android/content/Context.html#openFileOutput(java.lang.String , int) 特に MODE_APPEND に関する部分確認することをお勧めします。 .

于 2010-06-14T16:54:26.033 に答える