Andriod数据存储

来源:互联网 发布:java定义泛型变量 编辑:程序博客网 时间:2024/05/29 05:05

数据存储

1.使用SharedPreferences

用来存储少量并且数据格式简单的数据.如,开关的判断,一些小游戏的积分等.以键值对的方式存储.
SharedPreferences 接口无法实例化,通过Context的getSharedPreferences(String name,int mode)方法得到.它是以Xml文件的格式存储的.
SharedPreference接口的主要方法:
(1)读数据
这里写图片描述
(2)存数据,执行下面代码后,在模拟器的/data/data/应用包名/shared_prefs下生成config.xml文件
这里写图片描述

SharedPreferences preferences = getSharedPreferences("config", 0);Editor editor = preferences.edit();editor.putString("zhangsan", "23");editor.commit();

(3)经典案例 记录程序的使用次数

2.File存储

应用程序的数据会存放在/data/data/应用包名/files目录下,这个目录可以通过getFilesDir()获取应用程序的数据文件,如果不存在就创建.Context提供了以下两个方法来打开files目录下的文件:
openFileInput(String name) files文件夹下对应的name文件的输入流
openFileOutput(String name) files文件夹下对应的name文件输出流
这里写图片描述

3.SD卡的使用

(1)判断手机是否插入了SD卡

 String state = Environment.getExternalStorageState();//mounted 安装好的

(2)获取sd卡的目录

File file = Environment.getExternalStorageDirectory();//   /mnt/sdcard

(3)权限问题
(4) 获取sd卡的总大小和可用大小

public long getSDAllSize(){           //取得SD卡文件路径           File path = Environment.getExternalStorageDirectory();            StatFs sf = new StatFs(path.getPath());            //获取单个数据块的大小(Byte)           long blockSize = sf.getBlockSize();            //获取所有数据块数           long allBlocks = sf.getBlockCount();           //返回SD卡大小           //return allBlocks * blockSize; //单位Byte           //return (allBlocks * blockSize)/1024; //单位KB           return (allBlocks * blockSize)/1024/1024; //单位MB         }  

剩余可用大小:

public long getSDFreeSize(){       //取得SD卡文件路径       File path = Environment.getExternalStorageDirectory();        StatFs sf = new StatFs(path.getPath());        //获取单个数据块的大小(Byte)       long blockSize = sf.getBlockSize();        //空闲的数据块的数量       long freeBlocks = sf.getAvailableBlocks();       //返回SD卡空闲大小       //return freeBlocks * blockSize;  //单位Byte       //return (freeBlocks * blockSize)/1024;   //单位KB       return (freeBlocks * blockSize)/1024 /1024; //单位MB     }       

4.SQLite数据库(待续…..)
5.网络存储

原创粉丝点击