2011-12-30 2 views
-1

edittextをタイプしたsdcardに履歴を保存したい。私のコードは毎回新しいFileオブジェクトを生成します。 セッションコードのImが動作しているのに、 "createExternalStorageFile()"、以前の履歴がなくなったとき、同じファイルの新しい履歴が呼び出されたとき。どうすれば修正できますか?私はsdcardに履歴を残しておきたい!!一度だけFileオブジェクトを作成する、履歴の失敗

public void createExternalStorageFile() { 
    try { 
      File myFile = new File("/sdcard/" + tmp); 

      if (!myFile.exists() ){ 
       myFile.createNewFile(); 
      } else{ 

      FileOutputStream fOut = new FileOutputStream(myFile); 
      OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); 
      myOutWriter.append(messageHistoryText.getText()); 
      myOutWriter.close(); 
      fOut.close(); 

      } 

    } catch (IOException e) { 
    Log.e(TAG, "Could not write file " + e.getMessage()); 
    } 

}

答えて

0

それは私のために動作し、以下のコードをチェックアウト:

public void createExternalStorageFile() { 
    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { 
     String fileName = "out.txt"; 
     File root = Environment.getExternalStorageDirectory(); 
     File file = new File(root, fileName); 
     if (file.canWrite()) { 
      try { 
       boolean append = file.exists(); 
       FileWriter outFile = new FileWriter(file, append); 
       PrintWriter logFileWriter = new PrintWriter(outFile); 
       logFileWriter.append(messageHistoryText.getText()); 
       logFileWriter.flush(); 
       logFileWriter.close(); 
       outFile.close(); 
      } catch (IOException e) { 
       Log.e("LOGGER", "" + e.getMessage()); 
       return; 
      } 
     } else { 
      Log.e("LOGGER", "Couldn't write log file!"); 
     } 
    } else { 
     Log.e("LOGGER", "External storage is not mounted!"); 
    } 
}