我正在尝试将文件0_0.xml
保存在缓存中。所以我这样做
String fileName = "0_0.xml"
File file = new File(context.getCacheDir(), fileName);
if (file.exists()) {
...
} else {
file = File.createTempFile(fileName, null, context.getCacheDir());
FileOutputStream fos = new FileOutputStream(file);
try {
fos.write("some_string".getBytes());
} finally {
fos.close();
}
}
我已经多次运行我的应用程序并且想知道它总是找不到这个文件(如果不是file.exists()
我像上面描述的那样写它)所以它每次都创建了新文件。之后我列出了缓存中的所有文件并得到了类似的内容:
问题是为什么我的文件更改了它的名称以及如何访问它?
答案 0 :(得分:2)
您致电File.createTempFile
创建该文件。 createTempFile()
将为您的临时文件计算一个新的唯一名称,以避免与其他需要临时文件的操作发生冲突。
如果您想保留文件并再次找到它,请不要使用createTempFile()
生成新的唯一名称。而是使用您在检查时使用的相同对象(file
)来查看它是否存在。