@H_301_4@ 使用openDatabase方法来打开数据@H_301_4@库文件,如果该文件不存在,系统@H_301_4@会自动@H_301_4@创建/sdcard/dictionary目录,并将res/raw目录中的 dictionary.db文件复制到/sdcard/dictionary目录中。openDatabase方法的实现代码@H_301_4@如下:
@H_301_4@
@H_301_4@
private sqliteDatabase openDatabase() { try { // 获得dictionary.db文件的绝对路径 String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME; File dir = new File(DATABASE_PATH); // 如果/sdcard/dictionary目录中存在,创建这个目录 if (!dir.exists()) dir.mkdir(); // 如果在/sdcard/dictionary目录中不存在 // dictionary.db文件,则从res/raw目录中复制这个文件到 // SD卡的目录(/sdcard/dictionary) if (!(new File(databaseFilename)).exists()) { // 获得封装dictionary.db文件的InputStream对象 InputStream is = getResources().openRawResource(R.raw.dictionary); FileOutputStream fos = new FileOutputStream(databaseFilename); byte[] buffer = new byte[8192]; int count = 0; // 开始复制dictionary.db文件 while ((count = is.read(buffer)) > 0) { fos.write(buffer,count); } fos.close(); is.close(); } // 打开/sdcard/dictionary目录中的dictionary.db文件 sqliteDatabase database = sqliteDatabase.openOrCreateDatabase( databaseFilename,null); return database; } catch (Exception e) { } return null; }
@H_301_4@在openDatabase方法中使用了几个常量,这些常量是在 程序 @H_301_4@的主类(Main)中 定义 @H_301_4@的,代码如下:
@H_301_4@
public class Main extends Activity implements OnClickListener,TextWatcher { private final String DATABASE_PATH = android.os.Environment .getExternalStorageDirectory().getAbsolutePath() + "/dictionary"; private final String DATABASE_FILENAME = "dictionary.db"; }原文链接:https://www.f2er.com/sqlite/200591.html