资源文件拷贝的三种方式

1.类加载器(类路径)

  • Classloader.getResourceAsStream()来读取类路径中的资源,然后用FileOutputStream写入到自己的应用中(sdk开发的时候经常用这种方式)。
  • 这种方式必须要将数据库address.db放到src目录下,这样编译后就会直接将address.db生成到bin/classes目录中,会在类路径下,所以可以使用Classloader进行加载.
   InputStream is = getClassLoader().getResourceAsStream("address.db");
   File file = new File(/data/data/包名/files/address.db);
   FileOutputStream fos = new FileOutputStream(file);

2.Raw目录

将资源文件放到res-raw下, 然后用getResources.openRawResource(R.raw.addresss);(要求资源最好不超过1M,因为系统会编译res目录)

3.Assets目录

将资源文件放到Assets目录中。然后用mContext.getAssets().open("address.db");来读取该资源(Assets目录中的文件不会被编译,会原封不动的打包到apk中,所以一般用来存放比较大的资源文件)

时间: 2024-11-04 03:02:49

资源文件拷贝的三种方式的相关文章

反射概念:获取class文件对象的三种方式

反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 要想解剖一个类,必须先要获取到该类的字节码文件对象.而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象. 利用class文件对象,去使用该文件中的成员变量,构造方法,成员方法. 例子1:获取class文件对象的三种方式 public cla

php读取文件内容的三种方式(转)

分享下php读取文件内容的三种方法. php读取文件内容: //**************第一种读取方式***************************** header("content-type:text/html;charset=utf-8"); //文件路径 $file_path="text.txt"; //判断是否有这个文件 if(file_exists($file_path)){ if($fp=fopen($file_path,"a+&

python中简单文件的输入三种方式

最近在自学python,简单的总结了一下文件的输入的方式. 1. f=open("foo.txt") line=f.readline() while line: print(line,end='') line=f.readline() f.close() 2. for line in open("foo.txt"): print(line,end='') 3. f=open("foo.txt") lines=f.readlines() for l

Python读取文件内容的三种方式并比较

本次实验的文件是一个60M的文件,共计392660行内容. 程序一: def one(): start = time.clock() fo = open(file,'r') fc = fo.readlines() num = 0 for l in fc: tup = l.rstrip('\n').rstrip().split('\t') num = num+1 fo.close() end = time.clock() print end-start print num 运行结果:0.81214

golang 实现文件拷贝的2种方式

package main import ( "fmt" "io" "os" "path/filepath" "strconv" ) var BUFFERSIZE int64 func Copy1(src, dst string, BUFFERSIZE int64) error { sourceFileStat, err := os.Stat(src) if err != nil { return err }

Android Studio三种方式导入外部资源 以及 报错处理

android studio提供了三种方式导入外部资源: 1. Library dependency – 在线添加.需联网下载 2. File dependency – 从本地添加一些jar包(要先将jar包拷贝到项目的libs文件夹下) 3. Module dependency – 从本地添加带有源码的库工程(要先 import Moudle 将库工程导入项目中) 其中第三种方式导入会报一些错误,这里以github上的开源框架android-async-http 为例,给出一种导入的步骤并尝试

解析Xml文件的三种方式及其特点

解析Xml文件的三种方式 1.Sax解析(simple api  for xml) 使用流式处理的方式,它并不记录所读内容的相关信息.它是一种以事件为驱动的XML API,解析速度快,占用内存少.使用回调函数来实现. 1 class MyDefaultHander extends DefaultHandler{ 2 private List<Student> list; 3 private Student student; 4 5 @Override 6 public void startDo

启动bash shell的三种方式下,检查的启动文件

启动bash shell的三种方式 1.登录时当做默认登录shell 2.作为非登录shell的交互式shell 3.作为运行脚本的非交互shell 一.登录shell 登录Linux系统时,bash shell会作为登录shell启动,登录shell会从4个不同的启动文件里读取命令,下面是bash shell处理这些文件的次序: 1./etc/profile 2.$HOME/.bash_profile 3.$HOME/.bash_login 4.$HOME/.profile 其中/etc/pr

Velocity中加载vm文件的三种方式

Velocity中加载vm文件的三种方式: a.  加载classpath目录下的vm文件 Properties p = new Properties(); // 加载classpath目录下的vm文件 // 这里是加载模板VM文件,比如:/META-INF/template/Web_B2CPayment.vm(请参考mas_spring_integration.xml) p.setProperty("file.resource.loader.class", "org.apa