(012)數據存儲總結

我們使用的每個程序都離不開數據 比如說:看新聞 上QQ 刷微博 在這些數據中有一種數據叫做瞬時數據 他會因爲程序的意外關閉而導致數據的流失
那麼有了問題了 偉大的人類就會想辦法解決 於是相應產生了一種叫做數據持久化的技術 在安卓中有這樣幾種辦法可以實現它:

    1, 共享參數存儲

    2, File存儲   內部存儲 和  外部存儲(sd卡存儲)

    3, 數據庫的存儲

    4, ContentProvider 內容提供者

    5, 網絡存儲

下面我們來分別介紹一下:
一、共享參數的存儲 SharedPreferences(基本設置, 登陸信息可以去其他大神那看一下登陸界面的設置記住密碼功能 就是這個方法實現的)

1, 特徵

    存放輕量級的數據

    本質是以xml的格式, 通過鍵值隊的方式對數據進行讀取

    應用程序卸載後, 文件也會被刪除


2, 存放的數據類型

    boolean float int string long

3, 存放數據的路徑

    data/data/應用程序包名/shared_prefs/***.xml

4, 存儲數據

    1, 得到共享參數的對象
    SharedPreferences sp = getSharedPreferences(name,mode);

    2, 得到共享參數的編輯對象
    Editor editor = sp.edit();

    3, 向共享參數中寫入數據
    editor.putString(key,value);

    4, 提交數據
    editor.commit();

5, 讀取數據

    1, 得到共享參數對象
    SharedPreferences sp = getSharedPreferences(name,mode);

    2, 讀取數據
    String msg = sp.getString(key,默認值);

6, Editor的常用方法:

    editor.putString(key,value); 設置數據

    editor.commit();  提交數據

    editor.clear();   清除所有數據

    editor.remove(key);  移除指定數據

二, File 存儲

內部存儲  internal storage

    1 特點:

        文件只能被當前應用程序, 其他應用程序不能訪問

        當應用程序卸載後, 程序在內部存儲中的文件也會被刪除

    2, 路徑

        data/data/應用程序包名/files/***.***

    3, 核心代碼  FileOutputStream  FileInputStream

        3.1  存入數據

            //得到內部文件存儲的輸出流
            FileOutputStream fos = openFileOutput(name,mode);

            //寫入內容
            fos.write(content.getBytes());

            //關閉流
            fos.close();

        3.2  讀取數據

            //得到內部文件存儲的輸入流
            FileInputStream  fis = openFileInput(name);

            //讀取文件
            byte[] buffer = new byte(fis.available());

            fis.read(buffer);

            //關閉流
            fis.close();


    4, 內部存儲的方法

        String[] fileList()   得到內部存儲中所有文件的名稱

        deleteFile(String fileName)  刪除指定的文件

        File  getFileDir()    得到數據文件的絕對路徑


 外部存儲   External Storage

1,特點

    1, 插入sd卡

    2, 分爲2部分   sd卡的公共目錄   sd卡的私有目錄

    3, 公共目錄下的文件可以被應用程序共享, 私有目錄中的文件只能被當前應用成訪問

    4, 當應用程序卸載後, 公共目錄中的文件不會被清除, 私有目錄中的文件會被清除

2,路徑

    mut/sdcard  4.0之前存放的路徑   公共目錄

    storage/sdcard  4.0後存放的路徑     公共目錄

    storage/sdcard/Android/data/應用程序包名/...  私有目錄

3,讀寫sd的權限

4, 獲取擴展卡的根目錄

5, 獲取擴展卡的狀態

6,常用目錄

三,數據庫

Oracle,  SQLServer,  MySql,  SQLite   關係型數據庫

SQLite數據庫

Android中集成好的輕量級的數據庫

1, 特點

輕量級 只有一個動態數據庫, 是以當個文件的方式進行存取    

零配置 無需安裝

跨平臺 支持多個操作系統

嵌入式 嵌入到手機


在應用程序內部, 任何位置都可以通過數據庫的名稱訪問數據庫, 其他應用無法通過數據庫名稱對其訪問


data/data/應用程序包名/database/***.db

2, 數據存儲的類型

NULL        空值

INTEGER     整型

VARCHAR     可變長度的字符數據

TEXT        文本字符

BOOLEAN     布爾

3, sql語句

1, 創建表

    create table if not exists 表名(字段名稱  字段類型 primary key autoincrement,字段名稱  字段類型,....)

    create table if not exists user(_id integer primary key autoincrement,name varchar,age integer)

2, 插入數據

    insert into 表名(字段S) values(值S)

    insert into user(name,age) values('張三',18)

3, 修改數據

    update 表名 set 字段名稱=值 where 字段名稱=條件值

    update user set age=25 where name = '張三'

4, 查詢數據

    select (字段S) from 表名  where  字段名稱=條件值

    select * from user 

    select * from user where _id=2

    select * from user where name like '%張%'


5, 刪除數據

    delete from 表名 where 自動名稱=條件值

安卓正是把這個功能極爲強大的數據庫嵌入到系統中來 才使得本地持久化有了一個質的飛躍。
剩下的兩個方法我們會在下面的章節給大家介紹。
小編結語: 書山有路勤爲徑 學海無涯苦作舟 堅持就是勝利 只有把自己最不擅長的事情做好 纔會得到最本質的成就感!

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