android 临时文件,在Android上创建临时文件的最佳方法是什么?

好吧,这并不是一个问题,因为我并没有真正“卡住”我的代码,但是我发现Android

API在访问外部存储设备和File.createTempFile()方法方面有些奇怪的行为, d想了解正在发生的事情…

请注意,我的清单 中不 包含

android:name="android.permission.WRITE_EXTERNAL_STORAGE">。

第1部分 :

我有以下代码,它 确实可以 发挥作用:

File tempFile = new File(Environment.getExternalStorageDirectory(),

"my_temp_file.png");

它会为我创建一个临时文件,并且我可以毫无问题地在其中写入数据。

问题1 :为什么该功能有效,因为我不应该拥有SD卡的写入权限?

第2部分 :

我试图将代码更改为使用createTempFile创建临时文件的官方方法。所以我尝试了:

File tempFile = File.createTempFile("my_temp", "png",

Environment.getExternalStorageDirectory());

并在 manifest.xml 中添加了 WRITE_EXTERNAL_STORAGE 。你猜怎么了

?这不起作用,我得到了java.io.IOException:

09-07 14:07:29.061: E/_CLOG(19982): java.io.IOException: Permission denied

09-07 14:07:29.061: E/_CLOG(19982): at java.io.File.createNewFileImpl(Native Method)

09-07 14:07:29.061: E/_CLOG(19982): at java.io.File.createNewFile(File.java:1257)

09-07 14:07:29.061: E/_CLOG(19982): at java.io.File.createTempFile(File.java:1322)

09-07 14:07:29.061: E/_CLOG(19982): at com.(...).onClick(ProfileImageUpdater.java:58)

问题2 :为什么这行不通,而恕我直言应该行?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值