日期:2014-05-16  浏览次数:20389 次

复制assets下的数据库到SD卡

首先使用sqliteadDev(一个windows下图形化sqlite工具)建立一个新数据库。

android中使用sqlite、复制assets下的数据库到SD卡、支持大于1M的文件

如果使用SD卡,需要在AndroidManifest.xml中设置权限

< uses-permission android:name ="android.permission.WRITE_EXTERNAL_STORAGE" ></ uses-permission > < uses-permission android:name ="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" ></ uses-permission >

?

?

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

?

import android.content.Context;

?import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteDatabase.CursorFactory;

import android.database.sqlite.SQLiteException;

import android.database.sqlite.SQLiteOpenHelper;

?

/**

?

?* DBHelper dbHelper = new DBHelper(this);

?* dbHelper.createDataBase();

?* SQLiteDatabase db = dbHelper.getWritableDatabase();

?* Cursor cursor = db.query()

?* db.execSQL(sqlString);

?* 注意:execSQL不支持带;的多条SQL语句,只能一条一条的执行,晕了很久才明白

?* 见execSQL的源码注释 (Multiple statements separated by ;s are not supported.)

?* 将把assets下的数据库文件直接复制到DB_PATH,但数据库文件大小限制在1M以下

?* 如果有超过1M的大文件,则需要先分割为N个小文件,然后使用copyBigDatabase()替换copyDatabase()

?*/

public class DBHelper extends SQLiteOpenHelper {

? ? //用户数据库文件的版本