Android 文件存储-将数据保存在data目录下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 文件存储-将数据保存在data目录下相关的知识,希望对你有一定的参考价值。
参考技术A 在平常使用android手机的时候,我们都知道,几乎每一个app都在/data/data/<相应的包名>的文件夹下保存数据。那这些数据怎么进行保存的呢?在这里,将简单的介绍一下。Context类中有一个openFileOutPut方法,这个方法可以将我们的数据保存在data目录下的文件里面。
openFileOutput(String name, int mode)方法中带两个参数,第一个参数是文件名,这里只能写文件的名字,不能包含路径,因为所有的数据都保存在/data/data/<应用包名>/files/目录下;第二个参数是文件的操作模式,有MDOE_PRIVATE,MODE_APPEND,MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。
其中MODE_PRIVATE模式的是默认的操作模式,每一次写入的内容时,都会覆盖前面的内容;MODE_APPEND模式表示的是每次写入的内容追加在前面的后面;MODE_WORLD_READABLE表示的是其他应用程序可以对该文件进行写的操作;MODE_WORLD_WRITEABLE表示的是其他应用程序可以对该文件进行读的操作。不过在后面的两种模式过于危险,google已经在Android 4.2中废弃了。
openFileOutput()方法返回的是一个FileOutPutStream的对象,得到了这个对象,就可以使用Java的IO流来对文件的使用了。
点击保存过后,就会把我们的数据保存在data目录下。
如果我们想要查看的话,就可以在Android studio(我是2.3.2的版本)中找到Tools->Android->Android Device Monitor
再打开/data/data/<应用包名>/files/,发现有一个文件,就是我们之前创建的一个文件。
我们可以点击右上角的图标进行相应的导出工作,对相应的文件进行导出操作。
在Context类中,与openFileOutput方法对应的是openFileInput方法,用户从data目录读取相应的数据。这个方法相较于openFileOutput方法简单一些。
效果示意图:
android FileExplorer data目录无法查看
参考技术A window是根据文件的扩展名来区分文件类型,如:exe 是执行文件,但linux是用权限来区分,linux文件权限说明:d:标示目录
-:标示文件
l:标示链接文件
b:标示可供存储的接口设备文件
c:标示串口设备文件
r:标示可读
w:标示可写
x:标示可执行
在androidStudio下打开FileExplore窗口可以查看保存在手机内存中的数据,但有时发现FileExplorer下的/data,/sdCard文件夹无法查看。
发现/data的文件权限是drwxrwx--x这是linux的文件权限
第一个代表文件类型d是directory目录
后面三个是创建者的权限r读w写x执行
再后面三个是同组者的权限
最后三个是其他人的权限
我们从DDMS查看的时候就是其他人的权限发现只有执行 因此只需修改权限就可以了
具体过程:
1,获得root权限的手机
2.androidManifest文件夹下添加读写权限
3.配置sdk\platform-tools\adb.ex到环境变量下,比如adb.exe的路径D:\sdk\platform-tools配置到环境变量path下
4.配置好后win+R输入cmd 进入doc窗口,输入adb shell 回车
5.输入 su 回车
6,输入 chmod 777 /data 回车 (表示将data文件夹设为drwxrwxrwx)
7.现在data文件夹就能够看到了,其他文件夹一次输入上述命令
以上是关于Android 文件存储-将数据保存在data目录下的主要内容,如果未能解决你的问题,请参考以下文章