您的位置:首页 > 移动开发 > Android开发

Android数据存储于IO

2017-04-30 21:36 381 查看

Preface

Java IO中的编程经验大部分都可“移植”到Android应用开发商,Android本身也专门提供了一些IO API,通过这些API可以更有效地进行输入输出;

如果应用程序只有少量数据需要保存,那么使用普通文件就可以了;但如果应用程序有大量数据需要存储、访问,就需要借助于数据库了,Android系统内置了SQLite数据库,SQLite数据库是一个真正轻量级的数据库,没有后台,整个数据库就对应于一个文件。

SharedPreferences

SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此它保存的数据主要是简单类型的key-value对;读入数据提供的接口:contains,getAll,getXxx;

SharedPreferences接口本身没有提供写入数据的能力,而是通过SharedPreferences的内部接口实现,调用edit()方法即可获取它所对应的Editor对象。写入数据提供的方法:clear,putXxx, remove, commit; 当Editor编辑完成后,使用commit方法提交修改。

SharedPreferences本身是一个接口,无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name, int mode)方法来获取SharedPreferences实例,其中,第二个参数支持的值:

Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写;

Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写;

Context.MODE_WORLD_WAITABLE:指定该SharedPreferences数据能被其他应用程序读、写;

SharedPreferences数据总是保存在/data/data/package name/shared prefs目录下,总以XML文件形式保存;根元素是map;

访问其他程序的SharedPreferences的关键就是获取其他应用程序的Context。Context代表了访问该Android应用的全局信息的接口,而Android应用的报名正是该应用的唯一标识,程序可以根据Android应用的报名来获取对应的Context。

createPackageContext(“com.abc.io”, Context.CONTEXT_IGNORE_SECUITY);

使用getSharedPreferences;

如果写入数据,调用SharedPreferences的edit()方法获取Editor即可;

File存储

openFileOutput和openFileInput

Context提供打开本应用程序的数据文件里的文件IO流;

FileInputStream openFileOutput(String name): 打开应用程序的数据文件夹下的name文件对应输入流;

FileOutputStream openFileInput(String name, int mode): 打开应用程序的数据文件夹下的name文件对应的输出流;

第二个参数支持的值:

MODE_PRIVATE:

MODE_APPEND:

MODE_WORLD_READABLE:

MODE_WORLD_WAITEABLE:

访问应用程序的数据文件夹:getDir,getFilesDir, fileList, deleteFile;

读写SD卡

Steps

调用Environment的getExternalStorageState()方法判断手机上是否插入了SD卡

调用Environment的getExternalStorageDirectory()方法来获取外部存储器;

使用FileInputStream、FileOutputStrean、FileReader或FileWriter读、写SD卡里的文件;注意,是否有权限;

SQLite

轻量级数据存储,不是很常用;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 数据存储 IO file