安卓写入文件读取文件初步
来源:互联网 发布:python 爬虫框架 编辑:程序博客网 时间:2024/06/05 13:47
首先分为两大部分:1.写入手机内存 2.写入sd卡
1.第三方安卓程序都安装在"/data/data/包名"目录下该目录下有files文件夹,和chche文件夹
files文件夹用来盛装应用的数据,在系统中叫做应用的数据,”/data/data/包名“是应用自己的空间,
不需要权限就可以操作此文件夹的内容,
cache文件夹是应用的缓存,一些清理软件可以清除掉软件的cache文件夹的内容
2.在程序中读写“/data/data/包名”文件夹的内容
1.写入内容
String path="/data/data/包名/files/myfile.txt";File file=new File(path); try { FileOutputStream fos=new FileOutputStream(file,true); fos.write("我是将要写入文件的数据".getBytes()); fos.flush(); } catch (IOException e) { e.printStackTrace(); }
我们将一行字写入files文件夹下的file.txt文件下
其中数据部分所占的空间就是我们在files文件夹下写的文件
缓存所占的大小就是我们在cache文件夹下文件所占的大小,我这里files文件夹下没有文件
2.读取文件同理,就是简单的io读写
String path="/data/data/包名/files/myfile.txt";File file=new File(path); try { String str=""; BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(file))); str=br.readLine(); System.out.println(str); } catch (IOException e) { e.printStackTrace(); }
3.可是我们的包名可能会被改变,所以这里我们不能写死了
安卓为我们提供了如何自动获得这两个路径的方法,activity父类的父类android.content.ContextWrapper身上有两个方法
分别获得chche的路径 “/data/data/包名/cache”和"/data/data/包名/files"
这样我们就可以在activity中获得路径操作他们了
4.由于对应用程序包所关联的私有文件夹 也就是我们的/data/data/包名/files的读写非常常用,安卓也提供了另外两个方法
FileOutputStream openFileOutput (String name, int mode)
比如我们的name参数是"a.txt"那么 程序将会打开通向"/data/data/包名/files/a.txt"的输出流
mode 取值0或者MODE_PRIVTE 代表默认设置,文件时私有的其他程序不能读写
MODE_APPEND
追加到现有的文件。
MODE_ENABLE_WRITE_AHEAD_LOGGING
MODE_NO_LOCALIZED_COLLATORS
这两个不知道什么意思,但不能续写文件
*/-----------------------------------------------------------/*
读取写入sd卡的内容,
1.读取sd卡
sd卡的路径是mnt/sdcard/有时候是 mnt/sdcard1,或者storage/emulated/0,总之不固定
安卓中同样给出了获得sd卡路径的方法我们用Environment对象获得sd卡的路径
Enviroment对象的一些get方法
getDataDirectory()/data获得data目录getDownloadCacheDirectory()/cache获得cacae目录getExternalStorageDirectory()/strorage/emulated/0获得sd卡目录getExternalStorageState(File path)getRootDirectory()/system也就是system的目
getExternalStorageState()mounted获得sd卡的状态在
getStorageState(File path) 获取sd卡的状态 ,在api21中被弃用用上面那个代替
2.可以获得路径了,我们要写入文件之前要先检测内存卡的状态,也就是getExternalStorageState(),,返回值是
MEDIA_UNKNOWN,MEDIA_REMOVED, MEDIA_UNMOUNTED,MEDIA_CHECKING, MEDIA_NOFS,MEDIA_MOUNTED,
MEDIA_MOUNTED_READ_ONLY,MEDIA_SHARED, MEDIA_BAD_REMOVAL,MEDIA_UNMOUNTABLE 之一
mounted是挂载的意思,表示可用
3.添加sd卡读取权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
4.SharedPreferences的使用
*获取SharedPreferences对象(两个参数,一个是文件名,一个是文件权限)
*sp.edit()获取edit对象
*edit对象调用putString("name","value");记住要edit.commit()提交才能保存
*用sp的getString("name","默认值");返回获得的值,如果没有就返回默认值
SharedPreferences以xml的形式存储在/data/data/包名/shared_prefs/xxx.xml文件里
阅读全文
0 0
- 安卓写入文件读取文件初步
- 安卓文件写入与读取
- android(安卓)sd卡写入 读取文件的例子
- 安卓文件读取
- 读取写入文件
- C# 读取写入文件
- 写入、读取文件
- 读取写入ini文件
- ruby读取、写入文件
- 读取写入文件内容
- EXCEL 读取 写入文件
- 文件读取写入
- c++文件写入读取
- java文件读取、写入
- 读取、写入properties文件
- 文件创建读取写入
- 读取与写入文件
- python读取写入文件
- 制作根文件系统通过NFS使之挂在到ok6410开发板上
- Shortest Unsorted Continuous Subarray
- 求两个链表的第一个公共结点各种情况及三种思路分析
- List循环添加对象的推荐方式
- jQuery选择器之id选择器
- 安卓写入文件读取文件初步
- Java学习笔记(十四)--IO流
- ue4编辑器中StaticMesh边缘高亮
- Android 自定义View
- ACM 第八届山东省赛 J company SDUT 3902
- c++学习(四)
- 简单动态加载磁盘文件----删除功能
- 反斜杠转义字符不转义解决方法
- POJ