安卓存儲基本用法之SharedPreferences和內部外部存儲

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

	}


 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章