如何在Android的缓存目录中存储文件?

Jac*_*ine 7 java mobile android

我的目标是将临时文件存储在Context#getCacheDir()返回的目录中.

/data/data/my.app/cache/somedir/foo.json
Run Code Online (Sandbox Code Playgroud)

我认为我可以使用java.io apis在那里写文件.但我不确定如何设置文件的权限,因为我无法使用Context#MODE_PRIVATE.

Context#openFileOutput和Context#openFileInput的filename参数不能接受带路径分隔符的输入.因此它们仅对目录中创建的文件有用:

/data/data/my.app
Run Code Online (Sandbox Code Playgroud)

Kev*_*ghe 7

默认情况下,Android中的每个应用程序都在其自己的用户帐户下运行,因此您的应用程序创建的文件将无法从任何其他应用程序访问.查看本页顶部的项目符号#3:

http://developer.android.com/guide/topics/fundamentals.html

您还可以通过在模拟器/设备中运行shell并查看ls -l的输出来验证这一点.


Com*_*are 5

但我不确定如何设置文件的权限,因为我无法使用Context#MODE_PRIVATE.

AFAIK,默认情况下应该是私有的.