《第一行代碼》第七章 數(shù)據(jù)存儲全方案 詳解持久化技術(shù)

  • 本篇參考資料《第一行代碼 第三版》 2020.4月出版
  • 本篇文章只是本人看書的理解和整理的筆記肆资,更完整的內(nèi)容還在書上
  • 尊重原作者 請購買正版圖書

第六章涉及到四大組件中的廣播接收者和廣播發(fā)送者瘫里,目前使用率較低蚁堤,先看第七章的SQLite和其他持久化存儲吧住涉,這個比較重要杖虾。

關(guān)于持久化存儲三種方式条辟,在實際項目操作中肯定是需要進行封裝的弹渔,一般會采用單例模式胳施。這部分只簡單理解基本的使用方法,畢竟再高級的封裝都是從基礎(chǔ)開始的肢专。學(xué)習(xí)完畢后可以自己嘗試進行封裝或者去參考比較成熟的封裝方法舞肆。總之博杖,最適合自己的就是最好的椿胯。

一 文件操作

最簡單的文件讀寫,這里保存一個輸入框的字符串剃根,在啟動activity的時候讀取并填寫到輸入框

    fun save(input: String) {
        val output = openFileOutput("data", Context.MODE_PRIVATE)
        val writer = BufferedWriter(OutputStreamWriter(output))
        writer.use {
            it.write(input)
        }
    }

    fun read() {
        val content = StringBuilder()
        val input = openFileInput("data")
        val reader = BufferedReader(InputStreamReader(input))
        reader.use {
            it.forEachLine {
                content.append(it)
            }
        }
        editText.setText(content.toString())
    }

這只是最簡單的APP內(nèi)部文件操作例子哩盲,我這里想補充一下,首先Android上的文件讀寫分為兩大類型:APP內(nèi)部和APP外部(SD卡)

APP內(nèi)部文件讀寫

不需要請求權(quán)限狈醉,直接可以進行操作廉油,內(nèi)部讀寫分為保存目錄和緩存目錄
保存目錄data/data/包名/files 這里可以保存一些重要文件,app卸載時會清空
緩存目錄data/data/包名/cache 這里可以臨時緩存一些文件苗傅,內(nèi)存不足時系統(tǒng)會清理抒线,app卸載時會清空

APP外部文件讀寫

需要請求SD卡訪問權(quán)限。這里主要是app外部的文件操作金吗,比如SD卡十兢,訪問系統(tǒng)相冊這些操作趣竣。
在使用前需要判斷是否有SD卡可以讀寫。比如有些設(shè)備是外置SD卡旱物,有時候有遥缕,有時候沒有。這些都是需要注意的問題宵呛。

二 SharedPreferebces單個字段存儲

簡單用法:

        saveBtn.setOnClickListener {
            val sp = getSharedPreferences("data", Context.MODE_PRIVATE)
            val editor = sp.edit()
            editor.putString("name", "Tom")
            editor.putInt("age", 18)
            editor.putBoolean("married", false)
            editor.apply()
            Log.d(TAG, "保存成功")

        }
        readBtn.setOnClickListener {
            val sp = getSharedPreferences("data", Context.MODE_PRIVATE)
            Log.d(TAG, sp.getString("name", ""))
            Log.d(TAG, sp.getInt("age", 0).toString())
            Log.d(TAG, sp.getBoolean("married", false).toString())
        }

注意點1:保存列表時单匣,只能保存Set類型,Set的特點是無序
注意點2:保存對象object該怎么操作宝穗,比如數(shù)據(jù)實體類户秤?(思路:轉(zhuǎn)換為JSON字符串再保存)
注意點3:在項目中使用最好采用單例模式進行封裝

三 SQLite數(shù)據(jù)庫

注意:書上和以下內(nèi)容都只是SQLite數(shù)據(jù)庫的最基本的用法,實際項目使用中逮矛,肯定需要進行封裝的<拧!但是要進行封裝也得從基礎(chǔ)開始须鼎,繼續(xù)吧鲸伴。
實際使用過程中,應(yīng)該是直接傳入數(shù)據(jù)實體類對象到封裝的方法中進行保存晋控。當(dāng)然也會有查詢數(shù)據(jù)轉(zhuǎn)化為數(shù)據(jù)實體類等問題汞窗。
封裝參考:https://blog.csdn.net/tywfeng/article/details/86653875

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市赡译,隨后出現(xiàn)的幾起案子仲吏,更是在濱河造成了極大的恐慌,老刑警劉巖蝌焚,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件裹唆,死亡現(xiàn)場離奇詭異,居然都是意外死亡综看,警方通過查閱死者的電腦和手機品腹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門岖食,熙熙樓的掌柜王于貴愁眉苦臉地迎上來红碑,“玉大人,你說我怎么就攤上這事泡垃∥錾海” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵蔑穴,是天一觀的道長忠寻。 經(jīng)常有香客問我,道長存和,這世上最難降的妖魔是什么奕剃? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任衷旅,我火速辦了婚禮,結(jié)果婚禮上纵朋,老公的妹妹穿的比我還像新娘柿顶。我一直安慰自己,他們只是感情好操软,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布嘁锯。 她就那樣靜靜地躺著,像睡著了一般聂薪。 火紅的嫁衣襯著肌膚如雪家乘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天藏澳,我揣著相機與錄音仁锯,去河邊找鬼。 笑死翔悠,一個胖子當(dāng)著我的面吹牛扑馁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播凉驻,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼腻要,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了涝登?” 一聲冷哼從身側(cè)響起雄家,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胀滚,沒想到半個月后趟济,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡咽笼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年顷编,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剑刑。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡媳纬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出施掏,到底是詐尸還是另有隱情钮惠,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布七芭,位于F島的核電站素挽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏狸驳。R本人自食惡果不足惜预明,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一缩赛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧撰糠,春花似錦峦筒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至遮斥,卻和暖如春峦失,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背术吗。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工尉辑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人较屿。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓隧魄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親隘蝎。 傳聞我的和親對象是個殘疾皇子购啄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355