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的應用程包相關的所有私人檔案的檔案名稱 |
代碼案例:
讀取檔案:
//儲存讀取資料的位元組流
ByteArrayOutputStream stream=new ByteArrayOutputStream();
FileInputStream fis = openFileInput(“text1.txt”);
byte[] buffer=new byte[1024];
int len=-1;
while((len=inStream.read(buffer))!=-1) {
stream.write(buffer,0,length);
}
stream.close();
fis.close(); //關閉輸入資料流
text.setText(stream.toString());//顯示出來
寫入檔案:
FileOutputStream fos = openFileOutput(“text1.txt”,MODE_APPEND);
fos.write(text.getText().toString().getBytes());
fos.close(); //關閉輸出資料流