android 数据储存——--文件存储(2)
16lz
2021-01-24
前面介绍的Shared Preferences存储方式非常方便,但是其只适合存储比较简单的数据,如果需要存储更多的数据,可行选择的方式有好几种,这里先给读者介绍文件存储的方法。
和传统的Java中实现I/O的程序类似,在Android中,其提供了openFileInput 和 openFileOuput 方法读取设备上的文件,下面看个例子代码,具体如下所示:
- StringFILE_NAME="tempfile.tmp";// 确定要操作文件的文件名
- FileOutputStreamfos=openFileOutput (FILE_NAME,Context.MODE_PRIVATE);//初始化
- FileInputStreamfis=openFileInput (FILE_NAME);//创建写入流
代码解释:
上述代码中两个方法只支持读取该应用目录下的文件,读取非其自身目录下的文件将会抛出异常。需要提醒的是,如果调用FileOutputStream 时指定的文件不存在,Android 会自动创建它。另外,在默认情况下,写入的时候会覆盖原文件内容,如果想把新写入的内容附加到原文件内容后,则可以指定其模式为Context.MODE_APPEND。
注意默认情况下,使用openFileOutput方法创建的文件只能被其调用的应用使用,其他应用无法读取这个文件,如果需要在不同的应用中共享数据,可以使用Content Provider实现,关于Content Provider我们将在稍后的内容中介绍。
小知识资源文件放在哪里?
如果你的应用需要一些额外的资源文件,例如,一些用来测试你写的音乐播放器是否可以正常工作的MP3文件,可以将这些文件放在应用程序的/res/raw/下,如mydatafile.mp3。那么就可以在你的应用中使用getResources获取资源后,以openRawResource方法(不带后缀的资源文件名)打开这个文件,实现代码如下所示:
- ResourcesmyResources=getResources();
- InputStreammyFile=myResources. openRawResource(R.raw.myfilename);
除了前面介绍的读写文件外,Android还提供了诸如deleteFile、fileList 等方法来操作文件,不再赘述。
更多相关文章
- android studio + ndk + cmake + jna +sqlite c层报错SQLITE_CAN
- 安卓Android手机系统内文件夹目录解释
- android Dialog 全屏的方法
- 超简单的几行代码搞定Android底部导航栏功能
- 使用AChartEngine画柱状图
- 深入理解:Android(安卓)编译系统
- ffmpeg 编译android so库文件
- Android(安卓)多 Fragment 切换优化
- Android中禁用屏幕旋转