檔案管理 內部儲存 外部儲存 Sdcard

2021-07-15 05:56:53 字數 3261 閱讀 5339

內部儲存資料,是由本應用程式訪問的私有資料,儲存在/data/data/package_name/files/檔名  下

可以通過以下兩個方法讀取和寫入私有資料:

示例:

string info = "程式設計師好帥";

try catch (filenotfoundexception e) catch (ioexception e)

context.openfileinput(name)

name:已經存在的自定義檔名

示例:

try 

in.close();

toast.maketext(mainactivity.this, buf, toast.length_short).show();

} catch (filenotfoundexception e) catch (ioexception e)

raw檔案中資源檔案的一種,只能讀取,不能寫入

可以存放一些聲音資源檔案

在程式第一次執行時,讀取該資源資料,執行相應的操作,比如(初始化資料庫資料)

public void readrawclick(view v)

in.close();

} catch (ioexception e)

//讀取到的sql語句,再去執行

}

存放資源檔案,不會生成索引原生檔案

通常在該目錄下存放,網頁檔案、資料庫資料檔案、apk檔案,不會受res資源的相關限制

系統在記憶體低的情況下,會自動清除快取,但通常我們應該自己維護快取

一般大小在1mb

log.i("cache",getcachedir().tostring());

try catch (ioexception e)

public static boolean i***ternalstoragewritable()

return false;

}public static boolean i***ternalstoragereadable()

return false;

}

public static string getsdcardpath()

萬用字元:sdcard

/**

* 獲取外部儲存的私有目錄(4.4)

* @param context

* @return

*/public static file getexternalfilesdir(context context)

return file;

}/**

* 獲取外部儲存的私有快取目錄(4.4)

* @param context

* @return

*/public static file getcachedir(context context)

return file;

}獲取sdcard的總空間大小和可用空間大小

/*** 獲取sdcard的可用空間大小

* @return

*/public static long getfreespace()

/*** 獲取sdcard的總空間大小

* @return

*/public static long gettotalspace()

//

environment.getexternalstoragepublicdirectory(environment.directory_pictures)

//警報聲音,鬧鐘聲音

environment.getexternalstoragepublicdirectory(environment.directory_alarms)

//相機

environment.getexternalstoragepublicdirectory(environment.directory_dcim)

//文件

environment.getexternalstoragepublicdirectory(environment.directory_documents)

environment.getexternalstoragepublicdirectory(environment.directory_downloads)

environment.getexternalstoragepublicdirectory(environment.directory_movies)

//**

environment.getexternalstoragepublicdirectory(environment.directory_music)

//通知

environment.getexternalstoragepublicdirectory(environment.directory_notifications)

//部落格

environment.getexternalstoragepublicdirectory(environment.directory_podcasts)

//鈴聲

environment.getexternalstoragepublicdirectory(environment.directory_ringtones)

注意:在實際開發中,我們通常會使用sdcard來作為本應用程式的快取位置,我們可以在sdcard上建立乙個

屬於本應用程式使用的自定義目錄(通過存放一些非敏感的資料)

敏感資料一般放在sdcard上的私有目錄(sdcard/andorid/data/package_name/...下,或

應用程式下的私有目錄:data/data/package_name/files/...   或/cache/...)

面試題:問android儲存資料的方式有哪些:

shared preferences(共享屬性檔案)

internal storage(內部儲存)

external storage(外部儲存)

sqlite databases(sqlite資料庫)

network connection(網路)

內部儲存 外部儲存

內部儲存 系統儲存 物理位置是位於手機內部的非易失性儲存器上,就是俗稱的rom 系統快取 記憶體 物理位置是位於手機內部的隨機儲存器上,就是俗稱的ram rom相當於電腦硬碟,斷電後依然能夠儲存資料 ram相當於電腦記憶體,斷電後資料丟失 而android系統是基於linux系統建立的,她的分割槽結...

Android 內部儲存與外部儲存

android.permission.write external storage 注意 目前所有應用都可以讀取外部儲存,而無需特別的許可權。但這在將來版本中會進行更改。如果應用需要讀取外部儲存 但不向其寫入資訊 那麼您將需要宣告 read external storage許可權。android.p...

Android 外部儲存,內部儲存路徑

import android.content.context import android.os.environment import android.util.log public class directoryutils 獲取當前程式路徑 應用在記憶體上的目錄 data data com.exa...