SharedPreferences存儲
1.創建sharedPreferences對象調用getSharedPreferences()函數
2.實例化SharedPreferences.Editor對象。
3.輸入鍵值對
4.確認。
程序啓動時,想要初始化數據,應重載onStart()函數。
代碼:
保存
//爲了方便,自成一函數
public void savingSharedPreferences() {
SharedPreferences preferences = getSharedPreferences("people",
MODE_WORLD_READABLE + MODE_WORLD_WRITEABLE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("name", "小強");
editor.commit();
}
獲取
public void loadingSharedPreferences() {
SharedPreferences preferences = getSharedPreferences("people",
MODE_WORLD_READABLE);
String msgString = preferences.getString("name", null);
view.setText(msgString);
}
內部存儲
存:
1.創建FileOutStream 對象獲取openFileOutput()函數
2.寫入數據。
取
1.創建FileInStream對象獲取openFileOutput()函數
2.定義一比特字節流byte[] reader=new byte[fis.available]
3.while(fis.read(reader))判斷是否讀取完畢,創建String對象來保存數據。
public void SavinginStore() {
String string1 = "this is a test \n and is another";
try {
FileOutputStream fos = openFileOutput("people.txt",
MODE_WORLD_READABLE + MODE_WORLD_WRITEABLE);//注意權限,第二個參數、
fos.write(string1.getBytes()); //需要將String變量轉換爲btye類型
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void loadinginStore() {
try {
FileInputStream fis = openFileInput("people.txt");
byte[] reader = new byte[fis.available()];
String msgString = null;
while (fis.read(reader) != -1) {
msgString = new String(reader);
}
view.setText(msgString);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
外部存儲
外部存儲跟內部存儲差不多(個人覺得),只是在創建FileInStream和FileOutStream對象時有些不同,而且有時需要判斷外部存儲卡是否存在可寫(還沒有體會此好處)。
關鍵的是外部存儲需要獲取寫入權限。在AndroidManifast.xml中申請。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
代碼(FILENAME爲一String變量,myData也是String變量)
public void savingoutStore() {
try {
FileOutputStream fos = new FileOutputStream(
Environment.getExternalStorageDirectory() + "/" + FILENAME);
fos.write(myData.getBytes());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void loadingoutstore() {
String msg = null;
try {
FileInputStream fis = new FileInputStream(
Environment.getExternalStorageDirectory() + "/" + FILENAME);
byte[] reader = new byte[fis.available()];
while (fis.read(reader) != -1) {
msg = new String(reader);
}
view.setText(msg);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}