Android中的文件读写
来源:互联网 发布:apache一键安装包 编辑:程序博客网 时间:2024/05/19 12:15
~案例: 记住 用户名密码 应用
1.将数据保存在手机的内部存储空间中
{利用context.getFilesDir和context.getCacheDir存储数据到手机里面}
我们可以直接以流的形式去读写文件,但是这样不好,因为将应用路径写死在了程序中,
一旦修改应用包名,所有路径都需要重新修改.
context.getFilesDir()//返回[当前应用]/files文件夹的File对象
//【存入files文件夹的内容,将会永久存在除非手动删除】
context.getCacheDir()//返回[当前应用]/cache文件夹的File对象
//【缓存文件夹 这个文件夹中的内容除了可以手动删除,
//android系统在某些情况下(硬盘空间不足) 会自动去清理,
//虽然android会帮我们清理cache但是android推荐,
//应该在缓存文件使用完尽快手动清理掉】
【说明:context当前应用的环境】
2.外部存储空间(SD卡)
默认情况下写sd卡需要权限,读sd卡不需要权限,但是在高版本的android中可以配置开启sd卡读权限控制
(模拟器不支持,也不是所有手机都支持),此时读sd卡也需要权限,所以我们通常在使用sd卡时读和写的权限都配置即可.
有的手机厂商的sd卡目录并不叫/mnt/sdcard,如果程序中写死,在这种手机上就找不到sd卡目录!
File file = Enviroment.getExternalStorageDirectory();//--sd卡根目录的File对象
//判断SD卡是否存在
Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
3.快捷方法
//--直接获取输入流 指向 [应用目录]/files/...指定名称的文件
FileInputStream in = context.openFileInput(name)
//--直接获取输出流 指向 [应用目录]/files/...指定名称的文件
FileOutputStream out = context.openFileOutput(name,mode)
~~mode的可选值:
MODE_PRIVATE 只有当前应用可写,如果之前文件已经存在,则在写的时候内容发生覆盖
MODE_APPEND 只有当前应用可写,如果之前文件已经存在,则追加内容
MODE_WORLD_READABLE 写出的文件全局可读(路人可以看)
MODE_WORLD_WRITEABLE 写出的文件全局可写(路人可以写)
~MODE_WORLD_READABLE + MODE_WORLD_WRITEABLE 写出的文件即可读有可写
~~android中的文件的访问权限:
在linux中使用十位二进制表示文件的访问权限
第一位:表示文件的类型
d:文件夹
-:普通文件
前三位:表示【当前用户】对文件的访问权限 是否可读 是否可写 是否可执行
中间三位:表示【当前用户所在组中其他用户】对文件的访问权限 是否可读 是否可写 是否可执行
最后三位:表示【当前组以外的其他用户】对文件的访问权限 (~路人的访问权限)
是否可读 是否可写 是否可执行
android中每一个应用程序都独占一个用户,并且通常情况下这个用户独占一个用户组
1.将数据保存在手机的内部存储空间中
{利用context.getFilesDir和context.getCacheDir存储数据到手机里面}
我们可以直接以流的形式去读写文件,但是这样不好,因为将应用路径写死在了程序中,
一旦修改应用包名,所有路径都需要重新修改.
context.getFilesDir()//返回[当前应用]/files文件夹的File对象
//【存入files文件夹的内容,将会永久存在除非手动删除】
context.getCacheDir()//返回[当前应用]/cache文件夹的File对象
//【缓存文件夹 这个文件夹中的内容除了可以手动删除,
//android系统在某些情况下(硬盘空间不足) 会自动去清理,
//虽然android会帮我们清理cache但是android推荐,
//应该在缓存文件使用完尽快手动清理掉】
【说明:context当前应用的环境】
2.外部存储空间(SD卡)
默认情况下写sd卡需要权限,读sd卡不需要权限,但是在高版本的android中可以配置开启sd卡读权限控制
(模拟器不支持,也不是所有手机都支持),此时读sd卡也需要权限,所以我们通常在使用sd卡时读和写的权限都配置即可.
有的手机厂商的sd卡目录并不叫/mnt/sdcard,如果程序中写死,在这种手机上就找不到sd卡目录!
File file = Enviroment.getExternalStorageDirectory();//--sd卡根目录的File对象
//判断SD卡是否存在
Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
3.快捷方法
//--直接获取输入流 指向 [应用目录]/files/...指定名称的文件
FileInputStream in = context.openFileInput(name)
//--直接获取输出流 指向 [应用目录]/files/...指定名称的文件
FileOutputStream out = context.openFileOutput(name,mode)
~~mode的可选值:
MODE_PRIVATE 只有当前应用可写,如果之前文件已经存在,则在写的时候内容发生覆盖
MODE_APPEND 只有当前应用可写,如果之前文件已经存在,则追加内容
MODE_WORLD_READABLE 写出的文件全局可读(路人可以看)
MODE_WORLD_WRITEABLE 写出的文件全局可写(路人可以写)
~MODE_WORLD_READABLE + MODE_WORLD_WRITEABLE 写出的文件即可读有可写
~~android中的文件的访问权限:
在linux中使用十位二进制表示文件的访问权限
第一位:表示文件的类型
d:文件夹
-:普通文件
前三位:表示【当前用户】对文件的访问权限 是否可读 是否可写 是否可执行
中间三位:表示【当前用户所在组中其他用户】对文件的访问权限 是否可读 是否可写 是否可执行
最后三位:表示【当前组以外的其他用户】对文件的访问权限 (~路人的访问权限)
是否可读 是否可写 是否可执行
android中每一个应用程序都独占一个用户,并且通常情况下这个用户独占一个用户组
0 0
- Android中的文件读写
- 关于Android中的文件读写
- Android中的文件读写操作
- Android中的多种文件读写操作方法
- Android中的多种文件读写操作方法
- Android中的多种文件读写操作方法
- Android中的多种文件读写操作方法
- Android中的多种文件读写操作方法
- Android开发中的文件的读写
- 关于Android中的文件读写(jniGetFDFromFileDescriptor)
- Android中的多种文件读写操作方法
- Android中的多种文件读写操作方法
- Android中的文件读写全面总结
- Android程序:程序中的文件读写实例
- Android读写SD卡中的txt文件
- Android文件读写操作--读取Assets中的文件数据
- C#中的读写文件
- c中的文件读写
- Thinking In Java笔记(第六章 访问权限控制)
- TouchSlide移动端触屏滑动banner插件
- 基于XMPP协议的手机多方多端即时通讯方案
- TabHost fragment 和 Viewpager 总结
- windows下安装redis
- Android中的文件读写
- appStore上传苹果应用程序软件发布流程
- 写在毕业快满一年之际
- 【LeetCode】198.House Robber
- 问题二20150511——jar包冲突(报java.lang.NoSuchMethodException)
- Xcode里-ObjC, -all_load, -force_load
- iOS 开发之利用AFNetwoking实现GET请求
- 区间动态规划
- Android Studio 自定义设置注释模板——诺诺"涂鸦"记忆