首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Android中创建临时文件

在Android中创建临时文件
EN

Stack Overflow用户
提问于 2010-08-07 00:47:59
回答 5查看 185.9K关注 0票数 221

在Android中创建临时文件的最佳方式是什么?

可以使用File.createTempFile吗?文档对此非常含糊。

特别是,不清楚何时删除使用File.createTempFile创建的临时文件,如果有的话。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-27 02:22:01

这是我通常要做的:

代码语言:javascript
复制
File outputDir = context.getCacheDir(); // context being the Activity pointer
File outputFile = File.createTempFile("prefix", ".extension", outputDir);

至于他们的删除,我也不是完全确定。因为我在我的缓存实现中使用了这个,所以我手动删除最旧的文件,直到缓存目录大小降到我的预设值。

票数 312
EN

Stack Overflow用户

发布于 2013-11-25 20:18:12

对于临时内部文件,它们有2个选项

1.

代码语言:javascript
复制
File file; 
file = File.createTempFile(filename, null, this.getCacheDir());

2.

代码语言:javascript
复制
File file
file = new File(this.getCacheDir(), filename);

这两个选项都会将文件添加到应用程序缓存目录中,因此可以根据需要清除它们以腾出空间,但是选项1会在文件名的末尾添加一个随机数,以保持文件的唯一性。它还将添加一个文件扩展名,默认情况下为.tmp,但可以通过使用第二个参数将其设置为任何扩展名。使用随机数意味着,尽管指定了文件名,但它不会保持与后缀/文件扩展名(缺省情况下为.tmp)一起添加的数字。例如,您将文件名指定为internal_file,然后输出为internal_file1456345.tmp。虽然您可以指定分机,但不能指定添加的号码。但是,您可以通过file.getName();找到它生成的文件名,但您需要将其存储在某个位置,以便您可以随时使用它,例如,删除或读取文件。因此,出于这个原因,我更喜欢第二个选项,因为您指定的文件名是创建的文件名。

票数 39
EN

Stack Overflow用户

发布于 2011-06-27 02:21:22

您可以使用context.getCacheDir()来使用缓存目录。

代码语言:javascript
复制
File temp=File.createTempFile("prefix","suffix",context.getCacheDir());
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3425906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档