我开发了一项服务,该服务将在收到“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行为.. ??
如果是,请帮助我,我可以做些什么来确保我的文件不再创建。
答案 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);
}