删除使用FileOutputStream创建的文件

12 java file-io android fileoutputstream

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

FileOutputStream fos = openFileOutput("MY_TEMP.TXT", Mode);
Run Code Online (Sandbox Code Playgroud)

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

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

File f = new File(System.getProperty("user.dir"), "MY_TEMP.TXT");
f.delete()
Run Code Online (Sandbox Code Playgroud)

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

File f = new File("MY_TEMP.TXT");
f.delete();
Run Code Online (Sandbox Code Playgroud)

它也不起作用.

小智 12

我检查了这个帖子,删除从FileOutputStream创建的文件的最好方法是从Context方法deleteFile(TEMP_FILE)中简单调用就这么简单.


Bal*_*usC 9

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

fos.close();
f.delete();
Run Code Online (Sandbox Code Playgroud)

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