Android Studio-內部存儲

Android Studio-內部存儲
Android Studio-內部存儲

開發應用程式,總要存儲大量設定.以便重啟時讀取. 係android系統分『內部』仝『外部』存儲.

內部存儲: 衹有程式能夠訪問, 屬於私人吉間. 最重要冇需額外權限. 但係吉間細, 適宜存儲程式設定. 卸載程式後數據自動清除.

外部存儲: 冚辦闌外部程式皆可訪問,屬於公眾地方. 需要額外權限. 吉間大. 適宜存儲文檔. 通常位於SD卡, 或者係磁盤獨立劃出分區實現. 卸載程式後數據保留.

内部存儲 getFilesDir()
外部存儲 getExtemalFilesDir()

『getFilesDir()』返回路徑大約如下, 需然可以手工生成, 但係有可能路徑吾仝. 所以總係調用『getFilesDir()』返回内部存儲路徑.

/data/data/com.example.appname/files

因『getFilesDir()』返回JAVA字符串, 要轉為C字符串.

const char * path ;
jboolean isCopy;
path = (*env).GetStringUTFChars( java_path, &isCopy);

保存路徑后, 要释放C字符串. 否則造成記憶體泄漏.

if(path != NULL)
(*env).ReleaseStringUTFChars(java_path,path );

C創建并寫入文檔, 用『open()』函式

Int open(const char * pathame,int flags, … /*mode_t mode*/ );

引用頭文檔

#include <fcntl.h> open()函式
#include <errno.h> errno全局變量

 

flags: 訪問標記
O_WRONLY 衹寫模式
O_RDONLY 衹讀模式
O_CREAT 創建文檔
O_TRUNC 截斷文檔,長度0.
O_APPEND 總係文檔屘追加數據

 

mode 文檔讀寫許可權
S_IWUSR 用戶-寫權限
S_IRUSR 用戶-讀權限
S_IRGRP 群組-寫權限
S_IWGRP 群組-讀權限
S_IROTH 其他用户 寫權限
S_IWOTH 其他用户 讀權限

開啟寫文檔要創建文檔, 所以你仲要指定文檔讀寫權限.

開啟寫文檔
int flags = O_WRONLY | O_CREAT | O_TRUNC | O_APPEND ;
int mode = S_IWUSR | S_IRUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
int handle = open(filename, flags,  mode);

開啟祗讀文檔,忽再設罝文檔讀寫權限, 否則『errno』返回『EACCES』許可權被拒.

開啟祗讀文檔
int handle = open(filename, O_RDONLY);

發佈留言