关于文件存储

android系统是基于linux的,所以他的文件结构是类似的。

Android支持在SD卡上的应用私有目录,在Froyo版本后,通过getExternalFilesDir()可以获得具体路径。该路径依赖与应用的包名,如果你包为hello.file那么SD开上的应用私有目录为\mnt\sdcard\Android\data\hello.file\files\.如果希望存储在SD卡上的公共目录下,可以通过getExternalStoragePublicDirectory()公共目录的具体路径视需要存储的文件类型而定。

SD上的应用需要的缓存较大,也可以在SD卡上建立缓存目录,在Froyo版本后,通过getExternalCacheDir()可以获取应用在SD卡上的缓存路径。在使用SD卡目录时,需注意SD卡是否挂载,可通过Environment.getExternalStorageState()方法进行判断,如果返回值为Envirnment.MEDIA_MOUNTED表示SD卡处于挂载状态,可以放心使用。

 

一、存贮模式有

1.Context.MODE_PRIVATE:私有覆盖模式     -  rw-  rw-  ---

只能被当前应用访问,并且如果写入,则覆盖;

2.Context.MODE_APPEND:私有追加模式      -   rw-  rw-  ---

只能被当前应用访问,并且如果写入,则追加;

3.Context,MODE_WORLD_READABLE:公有只读模式      -  rw-  rw-   r--

可以被其他应用读取;

4.Context.MODE_WORLD_WRITEABLE:公有可写模式     - rw-   rw-  -w-

可以被其他应用写入,但不能读取;

 

二、 SharedPreferences 存储 

该数据存放在\data\data\包.名\shared_prefs文件夹下,文件扩展名为.xml。

数据以这种形式存储:  

<map><boolean name="firstFlag" value="true" /></map>

 

三、getExternalFilesDir()与getExternalStorageDirectory()区别

getExternalFilesDir()

获取应用程序下的存储目录,/data/data/your_package/,随着应用的卸载存储的文件被删除

getExternalStorageDirectory()

获取sd卡根目录,跟应用的是否卸载无关。

 

posted @ 2015-12-04 15:37  weidingqiang  阅读(210)  评论(0)    收藏  举报