文件将从SD卡中删除

时间:2011-08-10 11:22:19

标签: android

我开发了一项服务,该服务将在收到“ON_BOOTUP_COMPLETED”意图后启动,

在我的服务的“onCreate”中我编写了在设备的SD卡中创建文本文件的逻辑。

以下是我用过的逻辑:

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

我在其他方法中使用“abcwriter”将一些内容写入文本文件。 到目前为止它工作正常。

但是当重启设备时,我发现“abc.txt”文件再次创建。

但我在创建文件“if(!abc .exists())”之前进行了检查。但仍然会创建新文件。

我怀疑当我重启设备时,我的文件被删除了。这是android行为.. ??

如果是,请帮助我,我可以做些什么来确保我的文件不再创建。

2 个答案:

答案 0 :(得分:1)

如果要附加到文件,则必须使用下面的构造函数并将true作为第二个参数传递。否则,每次代码运行时(当你重新启动时)它都会被覆盖。也可以去除createNewFile()调用,你不需要它,因为编写器会创建它。

FileWriter(File file, boolean append) 

答案 1 :(得分:0)

abcwriter = new FileWriter(abc); - >这一行(重新)创建文件。

确保仅在需要时调用它:

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);
}