将数据保存到应用程序的目录下(权限级别–私有)
1.当尝试将一个文件写到/
目录下时,会出现如下的异常:
出现异常是因为 , 这里的路径以及保存的方式都有问题 , 目前是运行在androd中, android底层 是linux内核, linux 文件系统是根目录系统,写 文件File file = new File(“info.txt”);
这一行代码,尝试将数据保存到 linux 根目录/
下 , 而当前的应用程序不可能取得这样的权限.
每个应用程序 可以 将数据 保存到 自己 独有的一个文件夹下
例如,这个例子中保存在了如图所示的目录下:
2.怎么才能将数据成功保存到这个应用私有目录下呢?
2.1 获取该文件路径时,有一个固定的写法:
/data/data/应用的包名/文件名`
示例代码如图所示:
2.2 或者,还有更给力的获取形式:
调用 this.getFilrDir(),同样会返回一个当前应用程序的文件路径。
示例代码如图:
运行该程序,在文件系统中发现新生成了一个文件:
面试题:请设计一下android中图片的缓存策略,保存到设备中
答:
每个应用都有自己的保存数据的文件夹,有cache和files文件可以去保存应用运行时需要保存的一些数据.
举例,一个新闻客户端,如果现在网络不可以用,那么就默认的情况下给用户显示缓存cache文件夹下的数据
如果网络可以用,那么就提示用户当前互联网上服务器的最新的数据有多少条,然后让用户去选择是否更新数据,
如果不选择更新,那么就不更新,如果选择更新,那么就将缓存cache文件夹的数据给覆盖掉,这样就可以设计一套比较合理缓存策略了.