如何sqllite数据库复制到android手机上

如何sqllite数据库复制到android手机上,第1张

你是说直接打包到禅陆apk包中么?

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12272524.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存