1.把你的.sqlite文件打包成zip文件放在Assert目录下。
2.在程序第一次运行时,Activity.getAssert()函数读助闷隐assert目录下的sqlite文件,复制到你想要的目录下(一般是sd卡目录下,不过要注意的就是 要检查sd卡贺罩顷是否存在)
3.用SqliteDataBase.openDataBase()函数打开数据库,进行各种 *** 作。
--------------------------
但你的需求,如果只是配置信息,用SharedPreferences 来做不是更方便么?
可以将你的数据库.db文件复制到Android工程的res raw文件夹中在Android中不能直接打开汪仿res raw目录中的数据库文件,而需要在程序第一次启备枣动时将该文件困滚纤复制到手机内存或SD卡的某个目录中,然后再打开该数据库文件
复制的基本方法是使用getResources().openRawResource方法获得res raw目录中资源的InputStream对象,然后将该InputStream对象中的数据写入其他的目录相应的文件中
最后可以使用SQLiteDatabase.openOrCreateDatabase方法来打开任意目录中的SQLite数据库文件
数据库存放明裤在 /data/data/PACKAGE_NAME/databases 目录下你当然可以指定数据库名字,可以将db文件打包在工程里。
private SQLiteDatabase openDatabase() {
try {
// 获得dictionary.db文件的绝对路径
String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME
File dir = new File(DATABASE_PATH)
// 如果/sdcard/dictionary目录中存在,创建这个目录
if (!dir.exists())
dir.mkdir()
// 如果在/sdcard/dictionary目录中不存在
// dictionary.db文件,枣亩则从res\激岩简raw目录中复制这个文件到
// SD卡的目录(/sdcard/dictionary)
if (!(new File(databaseFilename)).exists()) {
// 获得封装dictionary.db文件的InputStream对象
InputStream is = getResources().openRawResource(
R.raw.dictionary)
FileOutputStream fos = new FileOutputStream(databaseFilename)
byte[] buffer = new byte[8192]
int count = 0
// 开始复制dictionary.db文件
while ((count = is.read(buffer)) >0) {
fos.write(buffer, 0, count)
}
fos.close()
is.close()
}
// 打开/sdcard/dictionary目录中的dictionary.db文件
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(
databaseFilename, null)
return database
} catch (Exception e) {
}
return null
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)