自定义SQLite数据文件存放的位置

如果你想使用已经存在的数据库文件,可以通过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]




你可能感兴趣的:(自定义SQLite数据文件存放的位置)