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();
}
}