1.SharedPreferences:用于存储程序的一些信息,这些信息格式较简单,例如配置信息,是否打开音效等,SharedPreferences保存信息基本使用键值对的方法,SharedPreferences接口主要负责读取应用程序的Preferences数据,有以下方法来访问SharedPreferences中的键值对:
boolean contains(Srtring key):判断是否包含特定key数据
Map<String,?>getAll():获取全部键值对
boolean getXxx(String key,xxx defValue):获取指定key对应 的value,如果value不存在就返回默认值,xxx可以是各种基本 类型的值,例如boolean,float
2.SharedPreferences.Editor用于向SharedPreferences写入数据,调用SharedPreferences.edit()方法可获取Editor对象
SharedPreferences.Editor clear():清空所有数据
SharedPreferences.Editor putXxx(String key,xxx value):存入指定key数据
SharedPreferences.Editor remove(String key):删除指定key对应数据项
boolean commit();Editor编辑完成后调用该方法提交修改
3.SharedPreferences本身是一个接口,程序无法创建实例,只能通过Context提供的getSharedPreferences(String name,int mode)方法获取实例,当此名的文件不存在时,如果有修改文件,就会自动创建一个,该方法第二个参数支持如下几个值:
Context.MODE_PRIVATE:只能被本应用程序读写
Context.MODE_WORLD_READABLE:能被其他应用程序读但不能写
Context.MODE_WORLD_WRITEABLE:能被其他应用程序读写
SharedPreferences以xml格式保存在DDMS中的File Explorer中的/data/data/<package name>/shared_prefs文件夹下,根元素为<map>,每个子元素代表一个键值对,value是什么类型子元素标签就是什么,例如:
3.安卓支持以IO流的形式来访问手机存储器上的文件
Context提供如下方法来打开应用程序的数据文件夹里的文件IO流:
FileInputStream openFileInput(String name):打开应用程序的数据文件夹的name文件对应的输入流。
FileInputStream openFileOutput(String name,int mode):打开应用程序的数据文件夹的name文件对应的输出流。
MODE_PRIVATE:该文件只能被本应用程序读写
MODE_APPEND:以追加方式打开文件
MODE_WORLD_READABLE:能被其他应用程序读但不能写
MODE_WORLD_WRITEABLE:能被其他应用程序读写
Context还提供如下方法来访问应用程序的数据文件夹:
getDir(String name,int mode):在应用程序的数据文件夹写读取或创建name对应的子目录
File getFilesDir();获取应用程序的数据文件夹的绝对路径
String[] fileList():返回应用程序的数据文件夹下的全部文件。
deleteFile(String):删除应用程序的数据文件夹下的指定文件。
4.读写SD卡上的文件
调用Environment.getExternalStorageState()方法来判断手机是否插入SD卡,并判断应用程序是否具有读写SD卡的功能。可用如下代码:
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);如果已经插入SD卡并且具有读写SD卡的功能返回true;
调用Environment.getExternalStorageDirectory()方法获取外部存储器,SD卡的目录;
使用FileInputStream,FileOutputStream,FileReader,FileWriter读写SD卡文件;
读写SD卡上的文件有以下两点需要注意:
对于模拟器来说,通过mksdcard命令来创建虚拟存储卡;
需要在manifest文件中添加读写SD卡的权限:
在SD卡中写入数据的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在SD卡中创建与删除文件权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
5.SQLite数据库
SQLite是一个嵌入式的数据库引擎,专门适用于在资源有限的设备上适量存储数据。SQLite数据库只是一个文件。安卓提供了SQLiteDatabase对象,此对象类似于JDBC编程中Connection和Statement的混合体,通过此对象可以管理、操作数据库。
insert方法插入的一行记录用ContentValues存放,ContentValues相当于Map集合,提供了put(String key,Xxx value);其中key为数据列的列名.
安卓中的Cursor类似于JDBC的ResultSet
一旦将记录指针移动到指定行之后,就可以调用Cursor的getXxx()方法获取该行的指定列的数据。
SQLiteOpenHelper类:此类是安卓提供的一个管理数据库的工具类,可用于管理数据库的创建和版本更新。
----------------这些博客都是我之前在学习过程中自书中摘出的重点,以及一些前辈总结的经验,外加一些自己的感悟,如果有前辈看到,有不对的地方希望大家指出,非常感谢。