每次程序启动会读取配置文件,个别应用INI文件或XML文件或自定义,然而应用这些文件很繁琐
改良?
SharedPreferences! 将NVP(name/valuePair)保留在Android文件系统中
它屏蔽课对文件系统的操纵过程
它有三种拜访模式:
MODE_PRIVATE,
MODE_WORLD_READABLE,
MODE_WORLD_WRITEABLE,
SharedPreferences的实现
定义拜访模式
public static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE;
定义名称
public static final String PREFERENCE_NAME = "SaveSetting";
- 将模式和参数名称作为参数传递给getSharedPreferences(),获取其实例
SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME, MODE);
通过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(); }
获取曾经保留的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){}