標籤:android style blog io ar color os 使用 sp
可以將dictionary.db檔案複製到Eclipse Android工程中的res\raw目錄中,1所示。所有在res\raw目錄中的檔案不會被壓縮,這樣可以直接提取該目錄中的檔案。
使用openDatabase方法來開啟資料庫檔案,如果該檔案不存在,系統會自動建立/sdcard/dictionary目錄,並將res\raw目錄中的 dictionary.db檔案複製到/sdcard/dictionary目錄中。openDatabase方法的實現代碼如下:
代碼
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, 0, count);
}
fos.close();
is.close();
}
// 開啟/sdcard/dictionary目錄中的dictionary.db檔案
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(
databaseFilename, null);
return database;
}
catch (Exception e)
{
}
return null;
}
在openDatabase方法中使用了幾個常量,這些常量是在程式的主類(Main)中定義的,代碼如下:
代碼
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";
}
如何將SQLite資料庫(dictionary.db檔案)與apk檔案一起發布