关于android:数据存储与访问-Andorid开发期末复习2

每次程序启动会读取配置文件,个别应用INI文件或XML文件或自定义,然而应用这些文件很繁琐
改良?
SharedPreferences! 将NVP(name/valuePair)保留在Android文件系统中
它屏蔽课对文件系统的操纵过程
它有三种拜访模式:
MODE_PRIVATE,
MODE_WORLD_READABLE,
MODE_WORLD_WRITEABLE,

SharedPreferences的实现

  1. 定义拜访模式

    public static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE;
  2. 定义名称

    public static final String PREFERENCE_NAME = "SaveSetting";
  3. 将模式和参数名称作为参数传递给getSharedPreferences(),获取其实例
 SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME, MODE);
  1. 通过SharedPreferences.Editor对SharedPreferences进行批改,调用commit()进行提交

     private void saveSharedPreferences(){
           SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME, MODE);
           SharedPreferences.Editor editor = sharedPreferences.edit();
           
           editor.putString("Name", nameText.getText().toString());
           editor.putInt("Age", Integer.parseInt(ageText.getText().toString()));
           editor.putFloat("Height", Float.parseFloat(heightText.getText().toString()));
           editor.commit();
     }
  2. 获取曾经保留的SharedPreferences中的数据

    private void loadSharedPreferences(){
           SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME, MODE);
           String name = sharedPreferences.getString("Name","Tom");
           int age = sharedPreferences.getInt("Age", 20);
           float height = sharedPreferences.getFloat("Height",1.81f);
         ...       
     }

SharedPreferences的文件保留在哪?
<data/data/<packege name>/shared_prefs

文件存储->程序如何读写流式文件?
openFileOutput()和openFileInput()

openFileOutput()的应用(为了写入数据而关上文件)

FileOutputStream fos = openFileOutput(FILE_NAME,Context.MODE_APPEND);

String text = entryText.getText().toString();
fos.write(text.getBytes());
labelView.setText("文件写入胜利,写入长度:"+text.length());
entryText.setText("");
fos.flush();
fos.close();

openFileInput()的应用(为了读取数据而关上文件)

FileInputStream fis = openFileInput(FILE_NAME);
byte[] readBytes = new byte[fis.available()];
while(fis.read(readBytes) != -1){
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理