制作APP對緩存文件以及外部儲存的處理方法,如果想要緩存一些數(shù)據(jù),而不是永久存儲這些數(shù)據(jù),應(yīng)該調(diào)用getCacheDir()方法。深圳APP開發(fā)公司整理創(chuàng)建文件并寫入內(nèi)容的代碼如下:String fileName = "cache. txt"; String content = "cache"; File file = new File( getCacheDir(), fileName); Log. v(" file", "file=" + file. getAbsolutePath()); try { FileOutputStream fos = new FileOutputStream( file); fos. write( content. getBytes()); fos. close(); } catch (Exception e){ Toast. makeText( MainActivity. this, "創(chuàng)建 文件 失敗", Toast. LENGTH_ LONG); }
創(chuàng)建的文件保存在/data/data/package_name/cache路徑下。當(dāng)設(shè)備的內(nèi)部存儲空間不足時,Android系統(tǒng)可能會刪除這些緩存文件以回收空間。但開發(fā)人員不應(yīng)該依賴系統(tǒng)來清理這些文件,而應(yīng)該始終自行維護(hù)緩存文件,使其占用的空間保持在合理的限制范圍內(nèi)(例如1MB)。當(dāng)用戶卸載應(yīng)用時,這些文件也會被移除。
圖22-1所示為之前創(chuàng)建的文件所在的存儲位置。圖22-1對內(nèi)部存儲操作常用到的其他幾個方法。
getFilesDir():獲取內(nèi)部文件的文件系統(tǒng)目錄的絕對路徑。
getDir():在內(nèi)部存儲空間內(nèi)創(chuàng)建(或打開現(xiàn)有的)目錄。
deleteFile():刪除保存在內(nèi)部存儲的文件。
fileList():返回應(yīng)用當(dāng)前保存的一系列文件。
制作APP關(guān)于外部存儲解決方案
(ExternalStorage)每個兼容Android系統(tǒng)的設(shè)備都支持可用于保存文件的共享“外部存儲”。該存儲可能是可移除的存儲介質(zhì)(例如SD卡)或內(nèi)部(不可移除)存儲。保存到外部存儲的文件是全局可讀取文件,而且在計算機(jī)上啟用USB大容量存儲以傳輸文件后,可由用戶修改這些文件。
注意:如果用戶在計算機(jī)上裝載了外部存儲或移除了介質(zhì),則外部存儲可能變?yōu)椴豢捎脿顟B(tài),并且保存到外部存儲的文件沒有實行任何安全性措施,所有APP都能讀取和寫入放置在外部存儲上的文件,用戶還可以移除這些文件。要讀取或?qū)懭胪獠看鎯ι系奈募?,APP必須獲取READ_EXTERNAL_STORAGE或WRITE_EXTERNAL_STORAGE系統(tǒng)權(quán)限。在APP的AndroidManifest.xml文件中添加如下所示代碼:
< manifest ...> < uses- permission android: name=" android. permission. WRITE_ EXTERNAL_ STORAGE" /> ... </ manifest>
如果同時需要讀取和寫入文件,則只需請求
WRITE_EXTERNAL_STORAGE權(quán)限,因為此權(quán)限也隱含了讀取權(quán)限。
注意:從Android4.4開始,如果僅讀取或?qū)懭階PP的私有文件,則不需要這些權(quán)限。在使用外部存儲執(zhí)行工作之前,應(yīng)始終調(diào)用getExternalStorageState()以檢查外部存儲是否可用。以下是用于檢查可用性的示例代碼。
//核查 外部 存儲 是否 可 讀寫 public boolean is ExternalStorageWR { String state = Environment. getExternalStorageState(); if (Environment. MEDIA_ MOUNTED. equals( state)) { return true; } return false; }
好了,APP開發(fā)公司本文關(guān)于“制作APP對緩存文件以及外部儲存的處理方法”知識就分享到這里,謝謝關(guān)注,博納網(wǎng)絡(luò)編輯整理。