【发布时间】:2023-03-31 03:00:01
【问题描述】:
我正在尝试删除一个文件,但它不起作用。我不知道为什么。这是我的函数调用。 String ola 和 ola2 都有 mozi 虽然你可以看到我在 ola 行执行后删除了文件。我希望ola2 给我null。
OfflineDataFiles dataFiles = new OfflineDataFiles();
dataFiles.writeToFile("mozi", getApplicationContext(), 1);
String ola =dataFiles.readFromFile(getApplicationContext(), 1);
boolean answer=dataFiles.DeleteFile(1);
String ola2 =dataFiles.readFromFile(getApplicationContext(), 1);
删除文件:
public boolean DeleteFile(int filetype)
{
File f = new File("myfile.txt");
boolean ans= f.delete();
return ans;
}
有什么问题?
【问题讨论】:
-
那是你告诉我们的 - 什么是是问题?如果您说删除后仍然可以从文件中读取,这实际上是预期的行为 - 删除的文件实际上不会变得不可访问,直到它的最后一个文件句柄关闭。即使这样,尝试从关闭的文件句柄中读取也不一定在所有实现中都有定义的行为。
-
@Chris Sratton ,我实际上想清空文件,以便其中没有数据。所以这就是我试图删除它的原因。但正如我在上面最后一句话中所说的,我期待最后一个读取函数返回 null,因为我调用了
DeleteFile()。如何在这里关闭最后一个文件句柄?我认为 File 对象在函数范围内。它应该在函数返回 no 后被删除?