1。获取资源的输入流

资源文件 sample.txt 位于 $PROJECT_HOME/assets/ 目录下,可以在 Activity 中通过    //也可以放置图片等资源,获取方式相同

Context.getAssets().open(“sample.txt”)

方法获取输入流。

注意:如果资源文件是文本文件则需要考虑文件的编码和换行符。建议使用UTF-8和Unix换行符。

2. WebView 加载assets目录下的html文件

资源文件 sample.html 位于 $PROJECT_HOME/assets/ 目录下,可以通过以下代码

WebView.loadUrl(“file:///android_asset/sample.html”);

加载html文件。



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

*res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。
*res/raw和assets的不同点:
1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹 *读取文件资源: 1.读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作

  • InputStream is = getResources().openRawResource(R.id.filename);


2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作

  • AssetManager am =null;
  • am = getAssets();
  • InputStream is = am.open("filename");


补充一下: 在未知目录下有哪些文件,该去和获取这些文件的名称并把文件拷贝到目标目录中呢?(用于内置文件但不知道文件名称,需要筛选出想要的文件然后拷贝到目标目录中,推荐内置在assets文件夹中)
1.res/raw目录:
通过反射的方式得到R.java里面raw内部类里面所有的资源ID的名称,然后通过名称获取资源ID的值来读取我们想要的文件。(这个方法我没试过,有用过的同学麻烦发一段代码看看)。
2.assets目录:
getAssets().list("");来获取assets目录下所有文件夹和文件的名称,再通过这些名称再读取我们想要的文件。

更多相关文章

  1. Android(安卓)Studio目录结构及工程项目结构解析
  2. Android(安卓)Studio 卡在building界面
  3. Android菜鸟日记 22音乐- MediaPlayer
  4. Android初体验-D2
  5. Android中由文件名获取文件Id的两种方法
  6. android中对目录下的文件按时间排序
  7. 如何获取 Android(安卓)设备的CPU核数、时钟频率以及内存大小
  8. Android如何获取判断是否有悬浮窗权限
  9. Android7.0适配心得

随机推荐

  1. android 多线程处理UI
  2. Android(安卓)- Android(安卓)Studio修改
  3. android camera 源码分析(基于应用)
  4. 【Android】状态栏通知Notification、Not
  5. andio:android 音频的代码层次关系
  6. Android(安卓)的 SDK Manager 无法启动
  7. android 程序开发的插件化 模块化方法 之
  8. Android(安卓)恢复出厂设置(recovery)
  9. Android(安卓)ClassLoader解析(2) - Andr
  10. Android(安卓)cupcake源代码获取和编译 f