当前位置:操作系统 > 安卓/Android >>

SharedPreference和FIleInputStream/FileOutputStream 2种存储方式

 


特点:


1、SharedPreference

本种存储方式只做简单的存储,如其名字一样。

优点:简单方便,适合做简单数据的快速保存

缺点:存放的文件只能在同一个包内,不能跨包引用

2、FIleInputStream/FileOutputStream

文件存储方式。此种方式可以存放比较大的文件。还可以存储到SDCARD中。可以跨包进行引用、可以存放到SDCARD上

 


案例Layout xml:


[html]
Layout xml: 
<?xml version="1.0" encoding="utf-8"?>   
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
    android:orientation="vertical" android:layout_width="fill_parent"   
    android:layout_height="fill_parent">   
     
     <TextView android:layout_width="fill_parent"   
        android:layout_height="wrap_content" android:text="保存数据练习!"   
        android:textSize="20sp" android:textColor="#ff0000" android:id="@+id/tv_title" />   
    <TextView android:layout_width="fill_parent"   
        android:layout_height="wrap_content" android:text="请输入帐号" />   
    <EditText android:layout_width="fill_parent"   
        android:layout_height="wrap_content" android:id="@+id/editText_Login"   
        android:text=""></EditText>   
    <TextView android:layout_width="fill_parent"   
        android:layout_height="wrap_content" android:text="请输入密码" />   
    <EditText android:layout_width="fill_parent"   
        android:layout_height="wrap_content" android:id="@+id/editText_Password"   
        android:text=""></EditText>   
    <Button android:id="@+id/button_save" android:layout_width="wrap_content"   
        android:layout_height="wrap_content" android:text="保存"></Button>   
    <Button android:id="@+id/button_load" android:layout_width="wrap_content"   
        android:layout_height="wrap_content" android:text="取出数据"   
        android:visibility="invisible"></Button>   
</LinearLayout>   

Layout xml:
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
   
     <TextView android:layout_width="fill_parent" 
        android:layout_height="wrap_content" android:text="保存数据练习!" 
        android:textSize="20sp" android:textColor="#ff0000" android:id="@+id/tv_title" /> 
    <TextView android:layout_width="fill_parent" 
        android:layout_height="wrap_content" android:text="请输入帐号" /> 
    <EditText android:layout_width="fill_parent" 
        android:layout_height="wrap_content" android:id="@+id/editText_Login" 
        android:text=""></EditText> 
    <TextView android:layout_width="fill_parent" 
        android:layout_height="wrap_content" android:text="请输入密码" /> 
    <EditText android:layout_width="fill_parent" 
        android:layout_height="wrap_content" android:id="@+id/editText_Password" 
        android:text=""></EditText> 
    <Button android:id="@+id/button_save" android:layout_width="wrap_content" 
        android:layout_height="wrap_content" android:text="保存"></Button> 
    <Button android:id="@+id/button_load" android:layout_width="wrap_content" 
        android:layout_height="wrap_content" android:text="取出数据" 
        android:visibility="invisible"></Button> 
</LinearLayout> 

说明:

由于本篇主要是针对2种存储方式的存储和读取进行说明并未把所有逻辑代码都贴出来

 


存储/读取代码:


[java]
sp = this.getSharedPreferences("zhang_data", this.MODE_PRIVATE);    
        sp.getString("login", "");     
        login.setText(sp.getString("login", ""));     
        pass.setText(sp.getString("password", "")); 
 
对于上面的这一块代码块中,sp为SharedPreferences对象。值得一说的是当getString拿数据的时候。会按照当前的key去搜索。如果没有的话它会默认按照第二个参数进行返回。也就是空字符串”” 
 
保存: 
                 sp.edit() 
                .putString("login", String.valueOf(login.getText())) 
                .putString("pass", String.valueOf(pass.getText())) 
                .commit(); 
            attention.setText("保存成功!可重新打开此程序,测试是否已经保存数据!" +     
                    "/n(或者在'File Explorer'窗口下-data-data-com.himi路径下" +     
             &

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,