文件存儲是Android中最基本的一種存儲形式,它不對存儲的內容做處理,所有數據都是原封不動的保存到文檔中,比較適用於一些簡單的文本存儲或二進制數據。
存儲
Content類提供了openFileOutput()方法,可以將數據存儲到指定的文件中。這個方法接收兩個參數:
文件名
文件是默認存放在 /data/data/<packagename>/file/ 目錄下的文件的操作模式
主要有兩種操作模式:MODE_PRIVATE 覆蓋原文件內容; MODEAPPEND在原文件中追加內容
FileOutputStream out = null;
BufferedWriter writer = null;
try {
//存儲的文件名爲data,操作模式爲覆蓋原文件
out = openFileOutput("data", MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(inputText);
} catch (IOException e) {
e.printStackTrace();
} finally {
if(writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
讀取文件
同樣的,Content類也提供了一個 openFileInput的方法來讀取數據,只接收一個參數,就是文件名,它會自動到/data/data/<packagename>/file/目錄下讀取數據,並返回一個FileInputStream對象,然後通過Java的IO流將數據讀取出來。
FileInputStream in = null;
BufferedReader reader = null;
StringBuilder content = new StringBuilder();
try {
//通過文件名來讀取文件
in = openFileInput("data");
reader = new BufferedReader(new InputStreamReader(in));
String line = "";
while((line = reader.readLine()) != null) {
content.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if(reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
參考《第一行代碼》