删除使用FileOutputStream创建的文件

时间:2010-07-20 14:53:11

标签: java android file-io fileoutputstream

我正在为Android平台开发 我的应用程序创建了一个临时文件,只需调用:

FileOutputStream fos = openFileOutput("MY_TEMP.TXT", Mode);

它工作正常,因为我可以写它并正常阅读。

问题是,当我从应用程序退出时,我想删除此文件。我用过:

File f = new File(System.getProperty("user.dir"), "MY_TEMP.TXT");
f.delete()

但它总是返回false并且文件不会被删除 我试过了:

File f = new File("MY_TEMP.TXT");
f.delete();

它也不起作用。

4 个答案:

答案 0 :(得分:11)

我查看了这个帖子,删除从FileOutputStream创建的文件的最佳方法是从Context方法deleteFile(TEMP_FILE)中简单调用,就像那样简单。

答案 1 :(得分:8)

您无法删除已打开的文件。您需要在删除之前关闭流。

fos.close();
f.delete();

也就是说,我宁愿使用File#createTempFile()让底层平台进行自动清理工作,并避免因使用File中的相对路径而导致的潜在可移植性问题。

答案 2 :(得分:0)

如果在您尝试删除文件之前关闭了Stream,请仔细检查。

答案 3 :(得分:0)

您已经有了一些可靠的答案,但我只想提及File.deleteOnExit(),它会在VM退出时安排删除文件。

- 编辑 -

您仍然应该关闭连接到该文件的所有流。