
開發應用程式,總要存儲大量設定.以便重啟時讀取. 係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); |



































































































































































































你必須登入才能發表留言。