如果你想使用已经存在的数据库文件,可以通过SQLiteDatabase的静态方法OpenOrCreateDatabase()来获取SQLiteDatabase对象
代码如下:
[code=java]
private final String DATABASE_PATH = android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/test";
private Activity activity;
private final String DATABASE_FILENAME;
public DBHelper(Context context){
//这里给出数据库的名称
DATABASE_FILENAME = "test.db“;
activity = (Activity) context;
}
//获取操作数据库的对象
public SQLiteDatabase openDatabase(){
try{
boolean b = false;
//获取数据库完整的路径名
String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;
//将数据库文件从资源文件放到合适的位置(资源文件就是项目下面的res中的raw文件)
//将数据库文件复制到SD卡中的File dir = new File(DATABASE_PATH);
if(!dir.exists())
b = dir.mkdir();
//判断是否存在该文件
if(!(new File(databaseFilename)).exists){
//若不存在得到数据库输入流对象
InputStream is = acitvity.getResources().openRawResoure(R.raw.test);
//创造输出流
FileOutputStream fos = new FileOutputStream(dataFilename);
//将数据输出
byte[] = new byte[8192];
int count = 0;
while((count = is.read(buffer)) > 0){
fos.write(buffer,0,count);
//关闭资源
fos.close();
is.close();
}
//获取SQLiteDatabase对象
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabse(databaseFilename,null);
return database;
}catch(Exception e){
System.out.priintln(e.getMessage);
}
return null;
}
}
[/code]