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目录下的主要内容,如果未能解决你的问题,请参考以下文章

Android之SharedPreferences使用

Android 开发小总结

android FileExplorer data目录无法查看

Android学习总结——文件储存

Android软件开发之SharedPreferences

请问各位高人,怎么pull android手机上的data文件到电脑上