Android4开发入门经典 之 第七部分:数据存储
生活随笔
收集整理的這篇文章主要介紹了
Android4开发入门经典 之 第七部分:数据存储
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據存儲基本知識
Android系統提供了多種數據存儲的方式,如下:
1:Shared Preferences:用來存儲私有的、原始類型的、簡單的數據,通常是Key-value對 2:Internal Storage:在設備內部存儲器中存儲數據 3:External Storage:在設備的擴展存儲上保存數據,通常是SD卡 4:SQLite Databases:SQLite數據庫 5:Network Connection:存儲數據到網絡服務器上使用Shared Preferences
Shared Preferences是用來存儲一些應用私有的、原始類型的、簡單的數據的一個框架,保存的數據通常是Key-value對要獲得SharedPreferences對象,通常有兩種方法:
1:getSharedPreferences():如果你想要使用多個preferences文件的話,可以通過傳入一個識別的名稱就可以獲取到相應的SharedPreferences對象 2:getPreferences():如果一個preferences文件僅僅在當前的Activity中使用的話,你可以使用這個方法,無需要提供識別的名稱。 使用SharedPreferences對象來獲取數據非常簡單,直接使用相應的getter方法即可使用SharedPreferences對象來存儲數據,大致有如下幾步
1:調用edit()方法來得到SharedPreferences.Editor 2:調用相應的put方法值添加進去 3:調用commit來提交保存這些數據向SharedPreferences對象寫入數據
java代碼: 查看復制到剪貼板打印
在獲得SharedPreferences對象的時候,需要指定文件創建的模式:
1:MODE_PRIVATE:默認模式,文件只可以被調用該方法的應用程序訪問 2:MODE_WORLD_READABLE:賦予所有的應用程序都可以讀取該文件 3:MODE_WORLD_WRITEABLE:賦予所有的應用程序都可以寫該文件 4:MODE_MULTI_PROCESS:SharedPreference的裝載標記,設置它,文件將會在SharedPreference實例被裝載到進程的時候檢查是否被修改,主要用在一個應用有多個進程的情況。從SharedPreferences對象讀取數據
java代碼: 查看復制到剪貼板打印
Internal Storage
當應用程序被安裝到系統中后,其所在的包會有一個文件夾用于存放自己的數據,只有這個應用程序才有對這個文件夾的寫入權限,這個私有的文件夾位于Android系統的/data/data/<應用程序包名>目錄下,其他的應用程序都無法向這個文件夾中寫入數據。 要讀取應用自己的私有文件,就不能直接使用Java I/O的API了,需要使用Activity提供的方法:openFileInput或openFileOutput。在使用openFileOutput方法的時候,需要指定打開的模式:
1:MODE_PRIVATE:默認模式,文件只可以被調用該方法的應用程序訪問 2:MODE_APPEND:如果文件已存在就向該文件的末尾繼續寫入數據,而不是覆蓋原來的數據。 3:MODE_WORLD_READABLE:賦予所有的應用程序對該文件讀的權限。 4:MODE_WORLD_WRITEABLE:賦予所有的應用程序對該文件寫的權限。向應用對應的Internal Storage里面寫入數據,這里以寫對象來示例,如下:
java代碼: 查看復制到剪貼板打印
讀取應用對應的Internal Storage里面的數據,這里以讀取對象來示例,如下:
java代碼: 查看復制到剪貼板打印
Internal Storage-保存Cache文件
如果你希望保存一些Cache數據,你可以使用getCacheDir() 來打開文件,將會把數據存儲到一個臨時的Cache文件里面。 當設備的內部存儲空間低的時候,Android系統可能會清除這些Cache文件,以回收存儲空間,這也意味著,你不能在Cache文件里面存儲需要持久化的數據。Internal Storage-其它常用方法
在Context中其他常用的方法:
1:getFilesDir() 得到內部存儲的文件系統的絕對路徑 2:getDir() 在內部存儲中創建目錄,如果存在的話就打開這個目錄 3:deleteFile() 刪除文件 4:fileList() 返回當前應用存儲的文件列表External Storage(操作SD卡)
Android的I/O基本上和Java的I/O是一樣的,只有一點點不同的地方,比如:
1:需要加入sdcard的操作權限 2:需要判斷sd卡是否存在,存在才能操作 3:放在sdcard的文件是公共的,而放到自己應用目錄里面的文件才是私有的常用的功能
1:在AndroidManifest.xml添加sdcard讀寫操作權限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"> </uses-permission> 2:在AndroidManifest.xml添加能創建和刪除sdcard文件的操作權限 <uses-permission android:name=?"android.permission.MOUNT_UNMOUNT_FILESYSTEMS"?/> 3:判斷SD卡是否插入 Environment.getExternalStorageState().equals(android.os.Enviroment.MEDIA_MOUNTED) 4:獲得SD卡根目錄 Android7及以下版本,使用:Environment.getExternalStorageDirectory()可以獲得如下路徑“/Android/data/<package_name>/files/” Android8及以上版本,建議使用:Context的getExternalFilesDir(type)方法,type表示你想要訪問什么樣的子目錄,比如Environment.DIRECTORY_MUSIC,如果訪問根目錄,就傳入null。從SD卡上讀文件,基本就是Java里面I/O的操作,這里以讀對象為例:
java代碼: 查看復制到剪貼板打印
向SD卡上寫文件,基本就是Java里面I/O的操作,這里以寫對象為例:
java代碼: 查看復制到剪貼板打印
視頻配套PPT,視頻地址【?Android4開發入門經典獨家視頻課程】 原創內容 轉自請注明【?http://***/forum/blogPost/list/2746.html#7728】
數據存儲基本知識
Android系統提供了多種數據存儲的方式,如下:
1:Shared Preferences:用來存儲私有的、原始類型的、簡單的數據,通常是Key-value對 2:Internal Storage:在設備內部存儲器中存儲數據 3:External Storage:在設備的擴展存儲上保存數據,通常是SD卡 4:SQLite Databases:SQLite數據庫 5:Network Connection:存儲數據到網絡服務器上使用Shared Preferences
Shared Preferences是用來存儲一些應用私有的、原始類型的、簡單的數據的一個框架,保存的數據通常是Key-value對要獲得SharedPreferences對象,通常有兩種方法:
1:getSharedPreferences():如果你想要使用多個preferences文件的話,可以通過傳入一個識別的名稱就可以獲取到相應的SharedPreferences對象 2:getPreferences():如果一個preferences文件僅僅在當前的Activity中使用的話,你可以使用這個方法,無需要提供識別的名稱。 使用SharedPreferences對象來獲取數據非常簡單,直接使用相應的getter方法即可使用SharedPreferences對象來存儲數據,大致有如下幾步
1:調用edit()方法來得到SharedPreferences.Editor 2:調用相應的put方法值添加進去 3:調用commit來提交保存這些數據向SharedPreferences對象寫入數據
java代碼: 查看復制到剪貼板打印
在獲得SharedPreferences對象的時候,需要指定文件創建的模式:
1:MODE_PRIVATE:默認模式,文件只可以被調用該方法的應用程序訪問 2:MODE_WORLD_READABLE:賦予所有的應用程序都可以讀取該文件 3:MODE_WORLD_WRITEABLE:賦予所有的應用程序都可以寫該文件 4:MODE_MULTI_PROCESS:SharedPreference的裝載標記,設置它,文件將會在SharedPreference實例被裝載到進程的時候檢查是否被修改,主要用在一個應用有多個進程的情況。從SharedPreferences對象讀取數據
java代碼: 查看復制到剪貼板打印
Internal Storage
當應用程序被安裝到系統中后,其所在的包會有一個文件夾用于存放自己的數據,只有這個應用程序才有對這個文件夾的寫入權限,這個私有的文件夾位于Android系統的/data/data/<應用程序包名>目錄下,其他的應用程序都無法向這個文件夾中寫入數據。 要讀取應用自己的私有文件,就不能直接使用Java I/O的API了,需要使用Activity提供的方法:openFileInput或openFileOutput。在使用openFileOutput方法的時候,需要指定打開的模式:
1:MODE_PRIVATE:默認模式,文件只可以被調用該方法的應用程序訪問 2:MODE_APPEND:如果文件已存在就向該文件的末尾繼續寫入數據,而不是覆蓋原來的數據。 3:MODE_WORLD_READABLE:賦予所有的應用程序對該文件讀的權限。 4:MODE_WORLD_WRITEABLE:賦予所有的應用程序對該文件寫的權限。向應用對應的Internal Storage里面寫入數據,這里以寫對象來示例,如下:
java代碼: 查看復制到剪貼板打印
讀取應用對應的Internal Storage里面的數據,這里以讀取對象來示例,如下:
java代碼: 查看復制到剪貼板打印
Internal Storage-保存Cache文件
如果你希望保存一些Cache數據,你可以使用getCacheDir() 來打開文件,將會把數據存儲到一個臨時的Cache文件里面。 當設備的內部存儲空間低的時候,Android系統可能會清除這些Cache文件,以回收存儲空間,這也意味著,你不能在Cache文件里面存儲需要持久化的數據。Internal Storage-其它常用方法
在Context中其他常用的方法:
1:getFilesDir() 得到內部存儲的文件系統的絕對路徑 2:getDir() 在內部存儲中創建目錄,如果存在的話就打開這個目錄 3:deleteFile() 刪除文件 4:fileList() 返回當前應用存儲的文件列表External Storage(操作SD卡)
Android的I/O基本上和Java的I/O是一樣的,只有一點點不同的地方,比如:
1:需要加入sdcard的操作權限 2:需要判斷sd卡是否存在,存在才能操作 3:放在sdcard的文件是公共的,而放到自己應用目錄里面的文件才是私有的常用的功能
1:在AndroidManifest.xml添加sdcard讀寫操作權限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"> </uses-permission> 2:在AndroidManifest.xml添加能創建和刪除sdcard文件的操作權限 <uses-permission android:name=?"android.permission.MOUNT_UNMOUNT_FILESYSTEMS"?/> 3:判斷SD卡是否插入 Environment.getExternalStorageState().equals(android.os.Enviroment.MEDIA_MOUNTED) 4:獲得SD卡根目錄 Android7及以下版本,使用:Environment.getExternalStorageDirectory()可以獲得如下路徑“/Android/data/<package_name>/files/” Android8及以上版本,建議使用:Context的getExternalFilesDir(type)方法,type表示你想要訪問什么樣的子目錄,比如Environment.DIRECTORY_MUSIC,如果訪問根目錄,就傳入null。從SD卡上讀文件,基本就是Java里面I/O的操作,這里以讀對象為例:
java代碼: 查看復制到剪貼板打印
向SD卡上寫文件,基本就是Java里面I/O的操作,這里以寫對象為例:
java代碼: 查看復制到剪貼板打印
轉載于:https://www.cnblogs.com/helloandroid1/archive/2012/08/06/2624538.html
總結
以上是生活随笔為你收集整理的Android4开发入门经典 之 第七部分:数据存储的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript获取浏览器客户端IP
- 下一篇: Android代码里面设置字体颜色的三种