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(); //關閉輸出流
--------------------------------------------------------------------
PS: 歡迎關注公眾號"Devin說",會不定期更新Java相關技術知識。
--------------------------------------------------------------------