先说场景吧:有一个现成的数据库文件需要在android程序中使用。
解决办法:1.使用WebService被动接受数据段的查询,缺点是耗流量,无法保证用户体验;
2.使用xml文件,缺点不易维护,不易使用;
3.将access转sqlite,随着程序一起发布;
这里采用第三种,具体过程:
1.读取raw文件,jp.db;
InputStream is =context.getResources().openRawResource(R.raw.jp);
2.保存到sd卡中;
String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;
File dir = new File(DATABASE_PATH);
Log.d(TAG, "数据库文件的路径为:"+databaseFilename);
if (!dir.exists())
Log.d(TAG, "数据库文件所在文件夹不存在,创建文件夹");
dir.mkdir();
if (!(new File(databaseFilename)).exists()) {
Log.d(TAG, "数据库文件不存在,创建文件");
InputStream is =context.getResources().openRawResource(R.raw.jp);
FileOutputStream fos = new FileOutputStream(databaseFilename);
byte[] buffer = new byte[8192];
int count = 0;
while ((count = is.read(buffer)) > 0) {
fos.write(buffer, 0, count);
}
fos.close();
is.close();
3.获取数据库对象
SQLiteDatabase dBase = SQLiteDatabase.openOrCreateDatabase(databaseFilename, null);
4.进行操作。
Cursor cursor = sqlDatabase.rawQuery(
"Select * from XXX where id= ?",
new String[] { String.valueOf(XXX) });