安卓學習日記 檔案管理

2021-09-17 08:15:05 字數 2011 閱讀 3393

1、使用內部儲存器

2、使用外部儲存器

寫入私有檔案

讀取私有檔案

讀取raw檔案

public void readrawfileclick(view v)

in.close();

toast.maketext(this,sb,toast.length_short).show();

} catch (filenotfoundexception e) catch (ioexception e)

}

效果展示

寫入私有快取資料

訪問sdcard路徑以前的android(4.1之前的版本)中,sdcard路徑通過「/sdcard」或者「/mnt/sdcard」來表示,而在jelly bean系統中修改為了「/storage/sdcard0」,以後可能還會有多個sdcard的情況。為了使**更加健壯並能相容以後的android版本和新裝置,請通過environment.getexternalstoragedirectory().getpath()來獲取sdcard路徑。

public void issdcardclick(view v)else 

}else

}

再次注意,getexternalfilesdir(),這個方法,不一定總能夠訪問sd卡中的訊息。

如果裝置自身已經有了一部分內部儲存當做外部儲存,那這個方法就不能訪問到sd。

當使用者解除安裝應用程式,android系統刪除以下:

(1)你儲存在內部儲存的所有檔案

(2)所有使用本應用外部儲存的私有檔案

(三)查詢空閒空間

如果你事先知道要儲存的資料量的大小,你就可以先查詢一下可用空間有多少,這樣就可以避免ioexception,可用的方法是:

getfreespace()—返回剩餘空間

gettotalspace()—返回總空間

但是返回的可用空間大小,並不說明,你就可以存入那麼多的資料。如果空間比你要存入的資料大幾m,或者空間被佔用率小於90%,都還可以,反之,就未必能存入。

並不需要每次存檔案之前都來這麼個判斷,加個異常捕捉就ok。而且,你也未必知道你要存入的資料有多大,你想判斷,也沒法判斷的,所以能catch這個ioeception就行。

安卓學習日記 記憶體管理技巧

如果應用程式當中需要使用service來執行後台任務的話,請一定要注意只有當任務正在執行的時候才應該讓service執行起來。另外,當任務執行完之後去停止service的時候,要小心service停止失敗導致記憶體洩漏的情況。當我們啟動乙個service時,系統會傾向於將這個service所依賴的程...

安卓日記 Realm快速上手

realm作為一種新興的資料庫以其 的速度吸引了我們,擺圖看看它有多快 力壓主流sqlite,所以學習realm就很有必要了 classpath io realm realm gradle plugin 1.0 1 新增後效果如下 buildscript dependencies realmconf...

安卓快取檔案

首先我們要弄清楚幾個概念 getcachedir data data getfilesdir data data 一般來說,上面這兩個目錄是使用者不可見的,屬於應用內部,比如webview等一些快取就存放於getcachedir 我是分割線 getexternalfilesdir sdcard an...