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){ } }
相关推荐
bleach00 2020-11-10
林德强之原创 2020-08-13
PlumRain 2020-08-03
bob于 2020-07-26
dataminer 2020-06-25
neverstopforcode 2020-06-18
zxznsjdsj 2020-06-16
langyue 2020-06-13
huangyx 2020-06-11
鲁氏汤包王 2020-06-11
LWLWLiang 2020-05-28
wkwanglei 2020-05-26
Coohx 2020-04-13
thunderstorm 2020-05-09
Andrea0 2020-05-04
数据库工具开发 2020-04-25
tlsmile 2020-04-24
helencoder 2020-04-10