Android 加载现有数据库文件
程序员文章站
2022-05-15 23:46:20
...
想把一个数据库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){
}
}
上一篇: 功夫足球之街头卖艺图片
下一篇: sqlite远程连接示例