數據的持久化技術(一)文件存儲

文件存儲是Android中最基本的一種存儲形式,它不對存儲的內容做處理,所有數據都是原封不動的保存到文檔中,比較適用於一些簡單的文本存儲或二進制數據。

存儲

Content類提供了openFileOutput()方法,可以將數據存儲到指定的文件中。這個方法接收兩個參數:

  1. 文件名
    文件是默認存放在 /data/data/<packagename>/file/ 目錄下的

  2. 文件的操作模式
    主要有兩種操作模式: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();
        }
    }
}

參考《第一行代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章