首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Android 加载旧有数据库文件

2012-07-24 
Android 加载现有数据库文件想把一个数据库db文件放在 res/raw/ 目录下,安装应用的时候就直接加载这个db文

Android 加载现有数据库文件

想把一个数据库db文件放在 res/raw/ 目录下,安装应用的时候就直接加载这个db文件到程序默认数据库目录下: /data/data/package_name/databases/db_name,这样就不用每次安装的时候都用SQL语句创建新的数据库。下面的代码就是将?res/raw/ 目录下的.db数据库文件拷贝到程序默认数据库目录下。

?

private String rootDirectory = "/data/data/org.itec.android.Classroom/databases/";private final String DATABASE_PATH = "/data/data/org.itec.android.Classroom/databases/";private final String DATABASE_FILENAME = "classroom.db";public void createDatabase() throws IOException {try          {               // 获得.db文件的绝对路径               String databaseFilename = DATABASE_PATH + DATABASE_FILENAME;               File dir = new File(rootDirectory);               // 如果目录不存在,创建这个目录               if (!dir.exists())                   dir.mkdir();               // 如果在/data/data/org.itec.android.Classroom            //目录中不存在 .db文件,则从res\raw目录中复制这个文件到该目录               if (!(new File(databaseFilename)).exists()){                   // 获得封装.db文件的InputStream对象                   InputStream is = getResources().openRawResource(R.raw.classroom);                   FileOutputStream fos = new FileOutputStream(databaseFilename);                   byte[] buffer = new byte[7168];                   int count = 0;                   // 开始复制.db文件                   while ((count = is.read(buffer)) > 0){                       fos.write(buffer, 0, count);                   }                   fos.close();                   is.close();               }           }           catch (Exception e){           }}
?

热点排行