2011-08-10 1 views
0

からファイルは、私がSDでテキストファイルを作成するためのロジックを書いた私のサービスの「のonCreate」で、私は「ON_BOOTUP_COMPLETED」の意図を受信したときに起動するサービスをIを開発しているSDカード

を削除得ていますデバイスのカード。以下は

は私がそうするために使用したロジックです:

 File abc = new File(Environment.getExternalStorageDirectory()+"\abc.txt"); 
     if(!abc .exists()) 
      abc.createNewFile(); 
     abcwriter = new FileWriter(abc); 

私は、テキストファイルへの一部のコンテンツを記述するために他の方法で「abcwriter」を使用しています。 これまでは正常に動作しています。

しかし、デバイスを再起動すると、「abc.txt」ファイルが再び作成されていることがわかりました。

"if(!abc .exists())"というファイルを作成する前にチェックを入れました。しかし、まだ新しいファイルが作成されます。

私はデバイスを再起動すると私のファイルが削除されていると思う。これはアンドロイドの行動ですか?

もし私のファイルが再作成されていないことを確認するために何か手伝ってください。

+0

私は完全にコードのあなたの最初の2行を理解していません。 Androidの外部ストレージディレクトリが存在するかどうかを確認する理由は何ですか? "abc.txt"ファイル名はどこに保存されていますか? –

+0

そのタイプミスコードを編集しました – brig

+0

新しいファイル( "file://" + Environment.getExternalStorageDirectory()。getAbsolutePath()+ "/abc.txt")を使用しようとしましたか? –

答えて

1

ファイルに追加する場合は、以下のコンストラクタを使用し、2番目のパラメータとしてtrueを渡す必要があります。それ以外の場合は、あなたのコードが実行されるたびに(リブートすると)上書きされます。createNewFile()コールを取り除くと、作者がそれを作成するので、あなたはそれを必要としません。

FileWriter(File file, boolean append) 
0

abcwriter = new FileWriter(abc); - >この行が(re)ファイルを作成します。

が必要な場合にのみ、それを呼び出していることを確認してください:

File abc = new File(Environment.getExternalStorageDirectory()+"\abc.txt"); 
if(!abc.exists()) { 
    // abc.createNewFile(); -> this is not needed since following line handles this 
    abcwriter = new FileWriter(abc); 
} 
関連する問題