Android文件存储基础
来源:互联网 发布:博客数据出售 编辑:程序博客网 时间:2024/06/05 11:34
手机内部存储
. 手机内部存储,默认在/data/data/<包名>/files文件夹下存放。
手机内部存储的特点:
1:存放本应用的私有数据,当应用卸载时,/data/data/<包名>这个目录会同步删除,即手机内部存储的文件会删除
* 关注点:
& Context.openFileOutput(String name, int mode)
- 往手机内部存储中以某种模式写文件
- name :文件名
- mode :文件操作模式
- return:FileOutputStream
- 文件存放在/data/data/包名/files/
. Context.openFileInput(String name) 从手机内部存储中读取文件
- 从手机内部存储中读文件
- name:文件名
- return:FileInputStream
. getCacheDir() 方法用于获取/data/data//cache目录
. getFilesDir() 方法用于获取/data/data//files目录
文件操作模式
外部存储
. . 所有兼容Android的设备都支持一个可共享的“外部存储(external storage)”,可用来保存文件。这可以是一个可移动的存储设备(比如SD卡)或者一个内部的(不可移动的)存储。保存在外部存储的文件是可全局读写的。
Sdcard存储的特点:
. 依赖于Sdcard,使用SDCard存储,需先检测其状态
. 存在Sdcard的文件是可全局读写的
. 写入Sdcard时,需要权限
* 关注点:
. Environment.getExternalStorageState() 取得外部存储状态
. Environment.getExternalStorageDirectory() 取得外部存储根路径
. 写入外部存储的权限
android.permission.MOUNT_UNMOUNT_FILESYSTEMS
android.permission.WRITE_EXTERNAL_STORAGE
* 外存路径描述
. 取得外部存储的公共共享存储路径
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
. 在外存中存放应用的私有文件,当应用删除时,该内容会同步删除 :
context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS)
目录: /android/data/<包名>/files/<类型>
.在外存中存放应用的私有缓存文件 ,当应用删除时,该内容会同步删除
context.getExternalCacheDir()
目录:/android/data/<包名>/cache
.取得外存的根路径
Environment.getExternalStorageDirectory()
代码实现(手机内部存取)
//存文件到手机内存 public void saveToPhone(String filename, String fileBody) throws Exception{//以私有模式打开文件,假如filename不存在,//则创建该文件,路径:/data/data/<包名> FileOutputStream fos=context.openFileOutput(filename, Context.MODE_APPEND); //把内容写到输出流中 fos.write(fileBody.getBytes()); //关闭输出流 fos.close(); } //从手机内部存储读文件 public String readFromPhone(String filename) throws Exception{ //从手机内存中读文件,路径:/data/data/<包名> FileInputStream fis=context.openFileInput(filename); //字节数组输出流 ByteArrayOutputStream baos=new ByteArrayOutputStream(); byte[] buffer=new byte[1024]; int len=-1; while((len=fis.read(buffer))!=-1){ baos.write(buffer, 0, len); } //关闭内存中的字节数组输出流 baos.close(); //关闭输入流 fis.close(); return new String(baos.toByteArray()); }
代码实现(SDCard存取)
//存文件到sdcard public void saveToSdcard(String filename, String fileBody) throws Exception { /** * 写数据到sdcard * 1、先判断sdcard 是否挂载 * 2、假如有:获取sdcard 路径 * 3、在sdcard中创建文件,并且开辟输出流 * 4、写数据到输出流 * 5、关闭输出流 */ //假如Sdcard挂载成功 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ //获得Sdcard的根目录 File root=Environment.getExternalStorageDirectory(); File file=new File(root, filename); FileOutputStream fos=new FileOutputStream(file); fos.write(fileBody.getBytes()); fos.close(); } } //从SDCard读文件 public String readFromSdcard(String filename)throws Exception { //判断SDCard状态 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ //获取外存的根路径 File root=Environment.getExternalStorageDirectory(); //创建文件 File file=new File(root, filename); //开辟输入流 FileInputStream fis=new FileInputStream(file); //缓存 ByteArrayOutputStream baos=new ByteArrayOutputStream(); byte[] buffer=new byte[1024]; int len=-1; while((len=fis.read(buffer))!=-1){ baos.write(buffer, 0, len); } baos.close(); fis.close(); return new String(baos.toByteArray()); } return null; }
个人笔记仅供参考,如果有误,欢迎指出。
- android 文件存储基础
- Android文件存储基础
- Android基础:数据存储(一):文件存储
- android基础---使用文件进行数据存储
- Android基础 文件存储和读取
- Android基础_数据存储一_文件存储
- 【Android安卓基础】 — Android测试&文件存储
- Android存储-文件存储
- android存储---文件存储
- Android基础学习笔记---流文件存储(一)
- android基础学习8——文件存储
- Android核心基础-5.Android 数据存储与访问-1.使用文件进行数据存储
- 【android基础】数据存储
- Android基础-数据存储
- Android基础入门教程——6.1 数据存储与访问之——文件存储读写
- Android基础:数据存储(一):文件存储的工具类UtilsFile
- Android基础之本地广播及文件存储和SharedPreference存储
- Android-文件存储-文本存储
- Cocos2D-X之环境搭建
- PLS-00306: wrong number or types of arguments in call to 'SYNCRN'
- 51nod 1002数塔取数 dp
- DOM
- dubbo的监控中心::记录调用次数、响应时间?
- Android文件存储基础
- socket之send,recv,sendto,recvfrom
- Action Bar的使用
- linux ubuntu 14.0 修改文件上下左右出现ABCD
- git修改远程仓库地址及远程仓库管理
- Android获取前台进程包名
- listview中item的各种进入效果实现
- 利用Masonry自适应键盘高度
- java代码审查检查表