一聚教程网:一个值得你收藏的教程网站

热门教程

浅谈android中数据库的拷贝

时间:2022-06-25 23:25:37 编辑:袖梨 来源:一聚教程网

SQLiteDatabase不支持直接从assets读取文件,所以要提前拷贝数据库。在读取数据库时,先在项目中建立assets文件夹用于存放外部文件,将数据库文件拷到该目录下。

代码方法:

 

 代码如下复制代码

/**

  * 拷贝数据库至file文件夹下

  * @param dbName 数据库名称

  */

 privatevoidinitAddressDB(String dbName) {

   //1,在files文件夹下创建同名dbName数据库文件过程

   File files=getFilesDir();//获取/data/data//files目录

   File file=newFile(files,dbName);//创建名为dbName的文件

   if(file.exists()){

     return;

   }

   //2.输入流读取第三方资产目录下的文件

   InputStream stream=null;

   FileOutputStream fos=null;

   try{

     stream=getAssets().open(dbName);

     //3,将读取的内容写入到指定文件夹的文件中去

     fos=newFileOutputStream(file);

     byte[] bs=newbyte[1024];

     inttemp=-1;

     while((temp=stream.read(bs))!=-1){

       fos.write(bs,0,temp);

     }

   }catch(IOException e) {

     e.printStackTrace();

   }finally{

     if(stream!=null&&fos!=null){

       try{

         stream.close();

         fos.close();

       }catch(IOException e) {

         e.printStackTrace();

       }

     }

   }

 }

 

热门栏目