您的位置:首页 > 移动开发 > Android开发

在android中的文件放在不同位置也有不同的读取方式

2015-02-13 13:41 295 查看
Android 系统为每个新设计的程序提供了/assets目录,这个目录保存的文件可以打包在程序里。/res 和/assets的不同点是,android不为/assets下的文件生成ID。如果使用/assets下的文件,需要指定文件的路径和文件名。下面这个例子,显示如何访问/assets下的内容。

在文件中/assets 中建立/image子目录,将/res/drawable下的icon.png子目录拷贝到该目录中。在/assets子目录中建立readme.txt文件,文件中输入文本“hello,world!!!”。

在android中的文件放在不同位置,它们的读取方式也有一些不同。

一、资源文件的读取:

1) 从resource的raw中读取文件数据:

?
2) 从resource的asset中读取文件数据

?
二、读写/data/data/<应用程序名>目录上的文件:

?
三、读写SD卡中的文件。也就是/mnt/sdcard/目录下面的文件 :

?
四、使用File类进行文件的读写:

?
五、另外,File还有下面一些常用的操作:

?
六、使用RandomAccessFile进行文件的读写:

RandomAccessFile的使用方法比较灵活,功能也比较多,可以使用类似seek的方式可以跳转到文件的任意位置,从文件指示器当前位置开始读写。

它有两种构造方法

new RandomAccessFile(f,"rw");//读写方式

new RandomAccessFile(f,"r");//只读方式

使用事例:

?
总结:

1、apk中有两种资源文件,使用两种不同的方式进行打开使用。

raw使用InputStream in = getResources().openRawResource(R.raw.test);

asset使用InputStream in = getResources().getAssets().open(fileName);

这些数据只能读取,不能写入。

2、SD卡中的文件使用FileInputStream和FileOutputStream进行文件的操作。

3、存放在数据区(/data/data/..)的文件只能使用openFileOutput和openFileInput进行操作。

注意不能使用FileInputStream和FileOutputStream进行文件的操作。

4、RandomAccess类仅限于文件的操作,不能访问其他IO设备。它可以跳转到文件的任意位置,从当前位置开始读写。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: