freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[計算機軟件及應(yīng)用]android應(yīng)用與游戲開發(fā)第8章數(shù)據(jù)存儲與訪問-在線瀏覽

2025-01-25 02:20本頁面
  

【正文】 缺陷模式 , 文件僅能夠被文件創(chuàng)建程序訪問 , 或具有相同 UID的程序訪問 。 MODE_WORLD_READABLE 全局讀模式 , 允許任何程序讀取私有文件 。 文件存儲 ? 內(nèi)部存儲 ? openFileOutput()函數(shù) ? 使用 openFileOutput()函數(shù)建立新文件的示例代碼如下 ? 第 1行代碼定義了建立文件的名稱 ? 第 2行代碼使用 openFileOutput()函數(shù)以私有模式建立文件 ? 第 4行代碼調(diào)用 write()函數(shù)將數(shù)據(jù)寫入文件 ? 第 5行代碼調(diào)用 flush()函數(shù)將所有剩余的數(shù)據(jù)寫入文件 ? 第 6行代碼調(diào)用 close()函數(shù)關(guān)閉 FileOutputStream 1. String FILE_NAME = 。 4. (())。 6. ()。 2. FileInputStream fis = openFileInput(FILE_NAME)。 5. while((readBytes) != 1){ 6. } 文件存儲 ? 內(nèi)部存儲 ? InternalFileDemo示例用來演示在內(nèi)部存儲器上進行文件寫入和讀取 ? InternalFileDemo示例用戶界面如圖 文件存儲 ? 內(nèi)部存儲 ? InternalFileDemo示例的核心代碼 1. OnClickListener writeButtonListener = new OnClickListener() { 2. Override 3. public void onClick(View v) { 4. FileOutputStream fos = null。 8. }else { 9. fos = openFileOutput(FILE_NAME,)。 12. (())。 14. ()。 17. } 18. catch (IOException e) { 19. ()。 25. ()。 28. } 29. } 30. } 31. } 32. }。 37. FileInputStream fis = null。 40. if (() == 0){ 41. return。 44. while((readBytes) != 1){ 45. } 46. String text = new String(readBytes)。 48. (文件讀取成功,文件長度: +())。 51. } 52. catch (IOException e) { 53. ()。 文件存儲 ? 內(nèi)部存儲 ? ? ,“ rwrw”表明文件僅允許文件創(chuàng)建者和同組用戶讀寫,其他用戶無權(quán)使用 ? 文件的大小為 9個字節(jié),保存的數(shù)據(jù)為“ Some data” 文件存儲 ? 外部存儲 ? Android的外部存儲設(shè)備指的是 SD卡( Secure Digital Memory Card),是一種廣泛使用于數(shù)碼設(shè)備上的記憶卡 ? 不是所有的 Android手機都有 SD卡,但 Android系統(tǒng)提供了對 SD卡的便捷的訪問方法 文件存儲 ? 外部存儲 ? SD卡適用于保存大尺寸的文件或者是一些無需設(shè)置訪問權(quán)限的文件,可以保存錄制的大容量的視頻文件和音頻文件等 ? SD卡使用的是 FAT( File Allocation Table)的文件系統(tǒng),不支持訪問模式和權(quán)限控制,但可以通過 Linux文件系統(tǒng)的文件訪問權(quán)限的控制保證文件的私密性 ? Android模擬器支持 SD卡,但模擬器中沒有缺省的 SD卡,開發(fā)人員須在模擬器中手工添加 SD卡的映像文件 文件存儲 ? 外部存儲 ? 使用 Android SDK/tools目錄下的 mksdcard工具創(chuàng)建SD卡映像文件,命令如下 ? 第 1個參數(shù) 1表示后面的字符串是 SD卡的標簽,這個新建立的 SD卡的標簽是 SDCARD ? 第 2個參數(shù) 256M表示 SD卡的容量是 256兆 ? 最后一個參數(shù)表示 SD卡映像文件的保存位置,上面的命令將映像保存在 E:\android目錄下 sdcard_file文件中。 2. OnClickListener writeButtonListener = new OnClickListener() { 3. Override 4. public void onClick(View v) { 5. String fileName = SdcardFile+()+.txt。 7. if (() amp。 ()) { 8. File newFile = new File(() + / + fileName)。 10. try { 11. ()。amp。 14. (())。 16. (fileName + 文件寫入 SD卡 )。 20. } finally { 21. if (fos != null) { 22. try{ 23. ()。 25. } 26. catch (IOException e) { } 27. } 28. } 29. } 30. } 31. }。在讀取文件結(jié)束后,調(diào)用 close()函數(shù)關(guān)閉文件流 ? ResourceFileDemo示例中關(guān)于讀取原始格式文件的核心代碼如下 1. Resources resources = ()。 3. try { 4. inputStream = ()。 6. while ((reader) != 1) { 7. } 文件存儲 ? 資源文件 ? 代碼第 8行的 new String(reader,utf8),表示以 UTF8的編碼方式,從字節(jié)數(shù)組中實例化一個字符串 ? 程序開發(fā)人員需要確定 /res/raw/是 UTF8編碼方式,否則程序運行時會產(chǎn)生亂碼 8. (new String(reader,utf8))。 11. } finally { 12. if (inputStream != null) { 13. try { 14. ()。 2. String msg = 。 6. String name = null。 8. String height = null。amp。 11. for (int i = 0。 i++) { 12. String attrName = (i)。 14. if ((attrName != null) amp。 (name)) { 15. name = attrValue。amp。 18. } else if ((attrName != null) amp。 (height)) { 19. height = attrValue。amp。amp。 文件存儲 ? 資源文件 ? 第 1行代碼通過資源對象的 getXml()函數(shù)獲取到 XML解析器 ? 第 4行代碼的 ()方法可以獲取到高等級的解析事件,并通過對比確定事件類型 ? 第 5行代碼使用 getName()函數(shù)獲得元素的名稱 ? 第 10行代碼使用 getAttributeCount()函數(shù)獲取元素的屬性數(shù)量 24. } 25. } 26. } 27. } catch (Exception e) { 28. (ResourceFileDemo, (), e)。 文件存儲 ? 資源文件 ? 第 12行代碼通過 getAttributeName()函數(shù)得到屬性名稱 ? 第 14行到第 19行代碼通過分析屬性名獲取到正確的屬性值 ? 第 23行代碼將屬性值整理成需要顯示的信息 ? XmlPullParser的 XML事件類型 事件類型 說明 START_TAG 讀取到標簽開始標志 TEXT 讀取文本內(nèi)容 END_TAG 讀取到標簽結(jié)束標志 END_DOCUMENT 文檔末尾 數(shù)據(jù)庫存儲 ? SQLite數(shù)據(jù)庫 ? SQLite是一個開源的嵌入式關(guān)系數(shù)據(jù)庫,在 2022年由D. Richard Hipp發(fā)布 ? SQLite數(shù)據(jù)庫特點 ? 更加適用于嵌入式系統(tǒng),嵌入到使用它的應(yīng)用程序中 ? 占用非常少,運行高效可靠,可移植性好 ? 提供了零配置( zeroconfiguration)運行模式 ? SQLite數(shù)據(jù)庫不僅提高了運行效率,而且屏蔽了數(shù)據(jù)庫使用和管理的復雜性,程序僅需要進行最基本的數(shù)據(jù)操作,其他操作可以交給進程內(nèi)部的數(shù)據(jù)庫引擎完成 數(shù)據(jù)庫存儲 ? SQLite數(shù)據(jù)庫 ? SQLite數(shù)據(jù)庫采用了模塊化設(shè)計,由 8個獨立的模塊構(gòu)成,這些獨立模塊又構(gòu)成了三個主要的子系統(tǒng),模塊將復雜的查詢過程分解為細小的工作進行處理 編 譯 器核 心 模 塊接 口分 詞 器分 析 器代 碼 生 成 器虛 擬 機B 樹頁 緩 存操 作 系 統(tǒng) 接 口后 端數(shù) 據(jù) 庫 數(shù)據(jù)庫存儲 ? SQLite數(shù)據(jù)庫 ? 接口由 SQLite C API組成,因此無論是應(yīng)用程序、腳本,還是庫文件,最終都是通過接口與 SQLite交互 ? 編譯器 ? 由分詞器和分析器組成 ? 分詞器和分析器對 SQL語句進行語法檢查,然后把 SQL語句轉(zhuǎn)化為底層能更方便處理的分層的數(shù)據(jù)結(jié)構(gòu),這種分層的數(shù)據(jù)結(jié)構(gòu)稱為“語法樹” ? 把語法樹傳給代碼生成器進行處理,生成一種針對 SQLite的匯編代碼 ? 最后由虛擬機執(zhí)行 數(shù)據(jù)庫存儲 ? SQLite數(shù)據(jù)庫 ? 虛擬機 ? SQLite數(shù)據(jù)庫體系結(jié)構(gòu)中最核心的部分是虛擬機,也稱為虛擬數(shù)據(jù)庫引擎( Virtual Database Engine, VDBE) ? 與 Java虛擬機相似,虛擬數(shù)據(jù)庫引擎用來解釋執(zhí)行字節(jié)代碼 ? 虛擬數(shù)據(jù)庫引擎的字節(jié)代碼由 128個操作碼構(gòu)成,這些操作碼主要用以對數(shù)據(jù)庫進行操作,每一條指令都可以完成特定的數(shù)據(jù)庫操作,或以特定的方式處理棧的內(nèi)容 數(shù)據(jù)庫存儲 ? SQLite數(shù)據(jù)庫 ? 后端 ? 后端由 B樹、頁緩存和操作系統(tǒng)接口構(gòu)成 ? B樹的主要功能就是索引,它維護著各個頁面之間的復雜的關(guān)系,便于快速找到所需數(shù)據(jù) ? 頁緩存的主要作用就是通過操作系統(tǒng)接口在 B樹和磁盤之間傳遞頁面 ? B樹和頁緩存共同對數(shù)據(jù)進行管理 數(shù)據(jù)庫存儲 ? SQLite數(shù)據(jù)庫 ? SQLite數(shù)據(jù)庫具有很強的移植性,可以運行在 Windows, Linux, BSD, Mac OS X和一些商用 Unix系統(tǒng),比如Sun的 Solaris, IBM的 AIX ? SQLite數(shù)據(jù)庫也可以工作在許多嵌入式操作系統(tǒng)下,例如 QNX, VxWorks, Palm OS, Symbin和 Windows CE ? SQLite的核心大約有 3萬行標準 C代碼,模塊化的設(shè)計使這些代碼更加易于理解 數(shù)據(jù)庫存儲 ? 手動建庫 ? 手動建立數(shù)據(jù)庫指的是使用 sqlite3工具,通過手工輸入命令行完成數(shù)據(jù)庫的建立過程 ? sqlite3是 SQLite數(shù)據(jù)庫自帶的一個基于命令行的 SQL命令執(zhí)行工具,并可以顯示命令執(zhí)行結(jié)果 ? sqlite3工具被集成在 Android系統(tǒng)中,用戶在 Linux的命令行界面中輸入 sqlite3可啟動 sqlite3工具,并得到工具的版本信息,如下面的代碼所示 ? 啟動 Linux的命令行界面的方法是在 CMD中輸入 adb shell命令 1. sqlite3 2. SQLite version 3. Enter “.help” for instructions 4. sqlite 數(shù)據(jù)庫存儲 ? 手動建庫 ? 在啟動 sqlite3工具后,提
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1