標籤:android 資料 資料存放區 儲存
源碼下載(免下載積分):下載
你可以直接儲存資料到內部儲存中,預設情況下,檔案儲存體到內部儲存中是私人的,不能被
其他程式訪問,當卸載應用程式,這些檔案會被移除。
建立並寫入資料可以有兩種方法:
- 使用java中的相關的方法,
- 使用android.content中的相關方法,
- 調用 openFileOutput(),並返回FileOutputStream對象
- 調用FileOutputStream對象的write()方法
- 關閉流
讀檔案也是基本相同的方式。
在讀檔案有一點小技巧:如果想在編譯時間儲存一個靜態檔案在你的應用程式中,儲存檔案到
res/raw/directory.可以使用openRawResource()方法來開啟檔案,並返回一個InputStream
對象,然後就能讀寫資料了。
代碼:
方法一:
FileOutputStream writeStream = null;FileOutputStream fileOutputStream = null;switch (view.getId()) { case R.id.button1: //建立的檔案其他程式不能訪問 File file1 = new File(getFilesDir(),FILE1); try { //寫入資料 writeStream = new FileOutputStream(file1); writeStream.write("haha".getBytes()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ try { if (writeStream != null) writeStream.close(); } catch (IOException e) { e.printStackTrace(); }}
方法二:
//使用的是android.content,try { /*設定成MODE_PRIVATE,其他程式不能訪問,這種是預設的構造方式,可以去設定成其他的方式來使其可讀寫。 */ fileOutputStream = openFileOutput(FILE2,Context.MODE_PRIVATE); //寫入資料 fileOutputStream.write("hehe".getBytes());} catch (FileNotFoundException e) { e.printStackTrace();} catch (IOException e) { e.printStackTrace();}finally{ try { if (fileOutputStream != null) fileOutputStream.close(); } catch (IOException e) { e.printStackTrace(); }}
儲存快取檔案
如果想要緩衝一些檔案,你可以使用createTempFile()去建立檔案,應該使用getCacheDir()去開啟檔案。
小技巧:正常情況下,上述的檔案無法看到,要想看到就要使用adb了,模擬器:adb devices查看裝置
~$ adb devices
List of devices attached
emulator-5554 device
然後進入超級使用者中,就可以做相應命令來查看了
~$ adb -s emulator-5554 shell
#
注意:應用程式的內部儲存目錄是有應用程式的的包名制定的,預設的情況下,其他程式不能夠訪問內部
儲存的路徑,除非你顯示的使用可讀或者可寫的模式。
參考資料:
http://developer.android.com/guide/topics/data/data-storage.html
http://developer.android.com/training/basics/data-storage/files.html