Android下的数据保存、文件读写以及访问模式

来源:互联网 发布:阿里云怎么赚钱 编辑:程序博客网 时间:2024/06/07 23:06

如何在手机上保存数据

1. android的文件系统使用的是linux的文件系统(没有c盘 d盘..)
2. android下应用程序的路径和javase不同,直接保存在根目录下会报错.这是因为如果大家都能保存到根目录,那么别的应用也能读取到你存储的文件信息,这样就造成了不安全性

3.保存数据到文件中一般有两个方法

1)保存到/data/data/应用的包名/files目录
数据选型:一般保存的是重要的信息、用户信息、
应用的配置。

手机如何清除应用保存的数据:设置->应用程序->应用详情->clear data (删除cache目录 删除files目录 )

2)保存到/data/data/应用的包名/cache目录

数据选型: 一般可以用来缓存不重要的数据、保存图片。

手机如何清除应用保存的数据:设置->应用程序->应用详情->clear cache (删除cache目录下的文件 )


手机存储目录的划分

1.手机内部存储:

创建的文件在手机内部存储空间,默认的权限全部私有,只有自己的应用程序可以访问。别的应用程序不可以访问

Environment.getDataDirectory();  返回/data/..
file目录和 cache目录的容量有限,价格比较贵,访问速度快

2.手机外部存储:

sd卡(手机常见插拔的容量卡) 容量大,可以更换,价格便宜。

Environment.getExternalStorageDirectory();  返回 /mnt/sdcard/..或/storage/emulated/0等

<span style="white-space:pre"></span>//1.内部存储        File dataFile = Environment.getDataDirectory();        Log.v("内部存储", dataFile.getAbsolutePath());//打印结果:/data                //2.外部存储(SD 卡)        //mnt.sdcard        // /storage/emulated/0        File externalFile = Environment.getExternalStorageDirectory();        Log.v("外部存储", externalFile.getAbsolutePath());

SD卡读写的操作:

1. 将文件写入到SD卡上 首先要判断SD卡是否装载
2. 写一个空文件到Sd卡上

3. 因为读写SD卡是敏感的行为 需要用户同意 所以需要使用”使用权限”

找到AndroidMenifest.xml文件,在后面添加使用权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    //写一个空文件到sd卡上    public void downLoadClick(View v) {    try {//1. 首先要判断SD卡是否装载String externalState = Environment.getExternalStorageState();if(externalState.equals(Environment.MEDIA_MOUNTED)){//Environment.MEDIA_MOUNTED 表示SD卡已经安装在手机上//创建一个空的文件File externalFile = Environment.getExternalStorageDirectory();File file = new File(externalFile, "空文件.avi");//字节流FileOutputStream fos = new FileOutputStream(file);byte[] buffer = new byte[1024*1024];for (int i = 0; i < 5; i++) {fos.write(buffer);}fos.close();}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}        }       }


内部存储目录文件的访问模式:

1.如何创建被其他应用访问的文件:

让别的程序访问我们程序的数据 openFileOutput("文件名",“访问模式”);//openFileInput()读进来

访问模式:

MODE_WORLD_READABLE:别的应用程序可以读取你的文件

MODE_WORLD_WRITEABLE:别的应用程序可以写入你的文件 

MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE:别的应用程序可以对你的文件读写

2.文件系统的功能:


上图中,Permissions下面对应有10个权限:

第一个位置:文件的属性,d 表示文件夹,- 表示文件
2-4的位置:能否在自己的应用中操作该文件(r w x -)
5-7的位置:在同个组内的应用能否访问该文件(r w x -)
8-10的位置:其他应用能否访问(r w x -)

其中,r 表示读功能,w 表示写功能,x 表示执行功能,- 表示不能执行

0 0
原创粉丝点击