Skip to content

Latest commit

 

History

History
26 lines (17 loc) · 1.15 KB

资源文件拷贝的三种方式.md

File metadata and controls

26 lines (17 loc) · 1.15 KB

资源文件拷贝的三种方式

  • 类加载器(类路径)

    • 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);
  • Raw目录

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

  • Assets目录

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