Android中讀取/寫入檔案的方法,與Java中的I/O是一樣的,提供了openFileInput()和openFileOutput()方法來讀取裝置上的檔案。但是在預設狀態下,檔案是不能在不同的程式之間共用的,以上兩個方法只支援讀取該應用目錄下的檔案,讀取非其自身目錄下的檔案將會拋出FileNotFoundException異常。建立的檔案存放在/data/data/<package name>/files目錄下。
傳回值 |
函數 |
備忘 |
FileInputStream |
openFileInput(String name) |
開啟指定的私人檔案輸出資料流。 name:要開啟的檔案名稱,不能包含路徑分隔字元。 |
FileOutputStream |
openFileOutput(String name,int mode) |
開啟指定的私人檔案輸出資料流。 name:要開啟的檔案名稱,不能包含路徑分隔字元。 mode:操作模式。預設使用0或MODE_PRIVATE,其他模式包括: l MODE_APPEND:追加 l MODE_WORLD_READABLE l MODE_WORLD_WRITEABLE 如果調用此函數時,指定的檔案不存在,則會自動建立一個空白的檔案。 在預設情況下,寫入的時候會覆蓋原檔案的內容。如果要把新寫入的內容追加到原檔案內容後面,可以指定其模式為Context.MODE_APPEND。 |
boolean |
deleteFile(String name) |
刪除指定的檔案 name:要刪除的檔案名稱,不能包含路徑 |
String[] |
fileList() |
返回與調用這個函數相關的Context的應用程包相關的所有私人檔案的檔案名稱 |
以下為使用範例程式碼:
//讀取檔案 FileInputStream fis = openFileInput(“text1.txt”); … … fis.close(); //關閉輸入資料流 //寫入檔案 FileOutputStream fos = openFileOutput(“text1.txt”,MODE_APPEND); … … fos.close(); //關閉輸出資料流 |
如果在開發應用程式時,需要通過載入一個檔案的內容來初始化程式,則可以在編譯器之前將這個檔案即靜態(static)檔案放在res/raw/myDataFile目錄下,然後在程式中通過Resources.openRawResource(R.raw.檔案名稱)這個方法返回一個InputStream對象。使用範例程式碼如下:
Resources myResources = getResources(); InputStream myFile = myResources.openRawResource(R.raw.myFileName); |