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){   
        }
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值