context.openFileOutput()vs file.createNewFile()?

时间:2012-05-11 00:39:36

标签: android

我已将我的应用程序的所有数据放在SD卡上的目录和子目录中,使用File对象和各种FileReaders / Writers和BufferedReaders / Writers。

我想到并非所有设备都有SD卡,所以我现在有4个问题。

  1. 有没有人知道目前运行android的手机有多少百分比没有实现SD卡?

  2. 有没有一种方法可以让我自己操纵手机内存(应用程序目录)的文件结构与我在SD卡上的原因相同?

    • 或 -
  3. 我是否必须重新实现我的所有代码才能使用openFileOutput()而不是createNewFile()复制我的应用中的SD卡文件行为?

  4. 为什么SD与应用程序目录的文件访问权限差别在哪?

1 个答案:

答案 0 :(得分:1)

  

1)有没有人知道大概有多少百分比的Android手机目前没有实现SD卡?

即使手机可以支持SD卡,也不意味着 支持它在给定时刻,因为SD卡可以移除或安装到PC访问或有数百个其他原因。所以,不要在那里放任何重要的东西。

  

2)有没有一种方法可以让我自己操纵手机内存(应用程序目录)的文件结构与我在SD卡上的原因相同?

内部存储器文件不能具有任何层次结构,如果您的文件名中包含路径分隔符,则openFileOutput()会出现异常。除此之外,您可以在/data/data/com.your.app/files目录中放置的文件数量没有限制。并且您不需要任何特定权限来创建/打开文件。

  

3)我是否必须重新实现我的所有代码才能使用openFileOutput()而不是createNewFile()复制我的应用中的SD卡文件行为?

我不会。基本上,应用程序的所有小型和/或生命关键文件都会进入内部存储器,并且所有大型且非必需的文件(图像,视频?)都会进入SD卡。没有冲突,你的应用程序可以完美地启动,如果SD卡不可用,就会抱怨。

相关问题