在Android中创建临时文件的最佳方式是什么?
可以使用File.createTempFile吗?文档对此非常含糊。
特别是,不清楚何时删除使用File.createTempFile
创建的临时文件,如果有的话。
发布于 2011-06-27 02:22:01
这是我通常要做的:
File outputDir = context.getCacheDir(); // context being the Activity pointer
File outputFile = File.createTempFile("prefix", ".extension", outputDir);
至于他们的删除,我也不是完全确定。因为我在我的缓存实现中使用了这个,所以我手动删除最旧的文件,直到缓存目录大小降到我的预设值。
发布于 2013-11-25 20:18:12
对于临时内部文件,它们有2个选项
1.
File file;
file = File.createTempFile(filename, null, this.getCacheDir());
2.
File file
file = new File(this.getCacheDir(), filename);
这两个选项都会将文件添加到应用程序缓存目录中,因此可以根据需要清除它们以腾出空间,但是选项1会在文件名的末尾添加一个随机数,以保持文件的唯一性。它还将添加一个文件扩展名,默认情况下为.tmp
,但可以通过使用第二个参数将其设置为任何扩展名。使用随机数意味着,尽管指定了文件名,但它不会保持与后缀/文件扩展名(缺省情况下为.tmp
)一起添加的数字。例如,您将文件名指定为internal_file
,然后输出为internal_file1456345.tmp
。虽然您可以指定分机,但不能指定添加的号码。但是,您可以通过file.getName();
找到它生成的文件名,但您需要将其存储在某个位置,以便您可以随时使用它,例如,删除或读取文件。因此,出于这个原因,我更喜欢第二个选项,因为您指定的文件名是创建的文件名。
发布于 2011-06-27 02:21:22
您可以使用context.getCacheDir()来使用缓存目录。
File temp=File.createTempFile("prefix","suffix",context.getCacheDir());
https://stackoverflow.com/questions/3425906
复制相似问题