概述
接下去我们编写代码实现sava()方法实现保存文件,这里用的是java中的I/O技术。
I/O技术实现文件保存:首先获得输出流对象(context.openOuput(name, mode))第一个参数是文件名称(这里不能带路径),第二个是文件的操作模式(这里我们选择的是私有操作模式context.MODE_PRIVATE),然后调用write()方法保存文件。[openFileInput()和openFileOutput()方法读取的是自带存储空间]
创建的文件默认保存在/data/data/<package name>/files目录下。大家可以打开文件资源管理器进行查看。
2.接下去我们在业务类中编写一个方法从文件中读取数据(read(filename));
利用openFileInput(name)方法得到文件输入流对象,默认在/data/data/<package name>/files目录寻找文件;
最后再从文件中读取数据。
3.引入单元测试环境(在日志pull解析xml中有介绍),编写测试方法,进行测试,并在日志控制台查看结果。
4.保存数据到SDCard中(当文件比较大的时候我们一般都将保存到外存储设备中就是SDCard中)
打开业务类,编写保存方法,这里我们不能使用openFileInput()方法(这个方法默认保存在自带存储空间); 得到要保存的文件对象new File(dirPath,name);第一个参数是sdcard在设备中的绝对路径("/mnt/sdcard"),但是我们一般采用Environment.getExternalStorageDirectory()来获得路径(因为sdcard的绝对路径可能因为版本的变化而变化,所以可能会有版本之间的兼容问题),在创建一个输出流对象进行保存文件。
这里我们还必须用到2个权限:在SDCard中创建与删除文件权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
在SDCard写入数据权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
业务类中的代码:
附:文件的操作模式
1.Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖源文件的内容;
2.Context.MODE_APPEND:该模式会检查文件是否存在,存在的话新写入的内容会追加到原文件中,否则就创建新文件,也是私有数据,只能被应用本身访问;
3.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;
4.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入;
如果希望文件被其他应用读和写,可传入:Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE。
如对以上有任何疑问都可回复或留言相互讨论!!!
最后
以上就是舒适睫毛为你收集整理的Android数据存储与访问之文件数据存储的全部内容,希望文章能够帮你解决Android数据存储与访问之文件数据存储所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复