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

热门教程

Android导入现有的数据库方法示例

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

大家在平时见到的android数据库操作一般都是在程序开始时创建一个空的数据库,我们然后在进行相关操作。这个我们就比较好做了,因为这个数据库是我们一开始就跟着这个应用走的,那么我们有的时候不可能什么都是自己去做的。我们要是需要使用一个已有数据的数据库怎么办呢?大家想一想在android系统下数据库应该存放在什么地方呐,我们要是知道数据库存放在什么地方就好办了,现在大家有没有思路了。没有的话,下面来看看详细的介绍吧。

方法如下

我们都知道 Android的 数据库默认是放在datadatapackageNamedatbases下的;

要导入现有的数据库将我们的数据库在 程序第一次启动的时候将数据库放在这个目录下,然后我们配置好SqliteDabase对象就可以 直接操作了。

 

 代码如下复制代码

/**

 * 将 数据库从 assets 复制到 databases下

 */

privatevoidcopyDB() {

 //data/data/packageName/databases/

 File mkdir =newFile(getFilesDir().getParent(),"databases");

 //创建 databases文件夹

 if(!mkdir.exists()) mkdir.mkdirs();

 Log.e(TAG,"copyDb: mkdir="+mkdir.getPath());

 //数据库文件

 File file =newFile(mkdir,"SinBusinessWssm1.db");

 //只是在程序第一次启动时创建

 if(!file.exists()){

  //获取 assets管理

  AssetManager assets = getAssets();

  //执行文件复制

  try{

   InputStream open = assets.open("SinBusinessWssm1.db");

   FileOutputStream fos =newFileOutputStream(file);

   byte[] bs =newbyte[1024];

   intlen ;

   while((len = open.read(bs))!=-1){

    fos.write(bs,0,len);

   }

   fos.flush();

   fos.close();

   open.close();

  }catch(IOException e) {

   e.printStackTrace();

  }

 }

 Log.e(TAG,"copyDb: exists="+file.getPath());

}

 

热门栏目