Android有四种方式(一)

来源:互联网 发布:csol企鹅优化 编辑:程序博客网 时间:2024/06/01 10:25

一、 SharePreference

轻量级键-值方式存储,以XML文件方式保存。

创建
 SharedPreferences settings
= this.getSharedPreferences("Demo", MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();


以键值<String Key,String Value> 方式加入数据

editor.putString("name", “value”);
editor.commit();


以 String Key 为索引来取出数据
String str = settings.getString("name", "");


清除
editor.clear().commit();



二、文件

 文件用来存储大数量的数据

 采用java.io.*库所提供有I/O接口,读写文件。

 只有本地文件可以被访问

优点:可以存储大容量的数据
缺点:文件更新或是格式改变可能会导致巨大的编程工作


读文件
1、Context.openFileInput(String name)打开一个与应用程序联系的私有文件输入流
2、当文件不存在时抛出FileNotFoundException 异常
3、FileInputStream in = this.openFileInput(“rt.txt");//打开文件“rt.txt"
……
in.close();//关闭输入流


写文件
1、Context.openFileOutput(String name,int mode)开启一个与应用程序联系的私有文件输出流
2、当文件不存在时该文件将被创建
3、文件输出流可以在添加模式中打开,这意味新的数据将被添加到文件的末尾

FileOutputStream
out=this.openFileOutput(“wt.txt",MODE_APPEND);
//打开文件“wt.txt"进行写操作、使用MODE_APPEND 在添加模式中打开文件
……
out.close();//关闭输出流


读取静态文件
1、 要打开打包在应用程序中的静态文件,使用Resources.openRawResource(R.raw.mydatafile)
2、 该文件必须放在文件夹res/raw/中

InputStreamin= this.getResources().openRawResource(R.raw.my);

//获得Context资源
in.close(); //关闭输入流


把文件存放在SDCard

1、访问SDCard,需要申请访问SDCard的权限。在AndroidManifest.xml中加入访问SDCard的权限如下:

<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2、要进行SDCard读写,必须先判断手机是否装有SDCard,并且可以进行读

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
         File sdCardDir = Environment.getExternalStorageDirectory();//获取SDCard目录
         File saveFile = new File(sdCardDir, “itcast.txt”);
FileOutputStream outStream = new FileOutputStream(saveFile);
outStream.write("Android开发".getBytes());
outStream.close();
}