在Android程序中使用已有的SQLite数据库
Posted Veer Han
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Android程序中使用已有的SQLite数据库相关的知识,希望对你有一定的参考价值。
在之前做的联系人项目中,应用安装完以后需要显示数据库中预存的数据,这时需要导入已有的数据库contact.db。这也是一个面试题,那么如何实现呢?
首先在res中新建raw文件夹,res\\raw目录中的文件不会被压缩,这样可以直接提取该目录中的文件。那么如何把raw文件下面的数据库文件contact.db导入到android程序中的database目录下呢?
下面提供一个导入现有数据库的工具类:importDatabase
public void importDatabase()
// 存放数据库的目录
String dirPath = "/data/data/com.example.contact/databases";
File dir = new File(dirPath);
if (!dir.exists())
dir.mkdir();
// 数据库文件
File file = new File(dir, "contact.db");
try
if (!file.exists())
file.createNewFile();
// 加载需要导入的数据库
InputStream is = this.getApplicationContext().getResources()
.openRawResource(R.raw.contact);
FileOutputStream fos = new FileOutputStream(file);
byte[] buffere = new byte[is.available()];
is.read(buffere);
fos.write(buffere);
is.close();
fos.close();
catch (FileNotFoundException e)
e.printStackTrace();
catcriOException e)
e.p`
ntStackTrace();
最后在MainActivity的oncreate()方法中调用importDatabase()方法即可,应用安装完成后数据库会自动创建。
以上是关于在Android程序中使用已有的SQLite数据库的主要内容,如果未能解决你的问题,请参考以下文章
在开发过程中测试 iOS 应用程序存档并保持现有的 sqlite 数据库已在使用中
如何使用 Qt 在 Android 中读取现有的 SQLite 数据库?
不同的sqlite数据库在android app中进行测试和实际使用
如何将现有的 MS Access 移植到 SQLite 以用于 Android 应用程序开发? [复制]