数据库文件路径res/raw/wordroot.db数据库文件。没有raw文件夹的话可以自己创建,wordroot.db直接复制到文件夹下就可以了。
这个例子只是在一个activity中测试复制数据库是否成功。
package com.iteedu.www; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.widget.TextView; public class WordRootActivity extends Activity { /** Called when the activity is first created. */ private static String DATABASE_PATH = "/data/data/com.iteedu.www/databases/"; private static String DATABASE_FILENAME = "wordroot.db"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.main); String databaseFilename = DATABASE_PATH + DATABASE_FILENAME; File dir = new File(DATABASE_PATH); if (!dir.exists()) dir.mkdir(); FileOutputStream os = null; try { os = new FileOutputStream(databaseFilename); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } InputStream is = getResources().openRawResource(R.raw.wordroot); byte[] buffer = new byte[8192]; int count = 0; // 开始复制db文件 try { while ((count = is.read(buffer)) > 0) { os.write(buffer, 0, count); os.flush(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { is.close(); os.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } SQLiteDatabase db = SQLiteDatabase.openDatabase(databaseFilename, null, SQLiteDatabase.OPEN_READONLY); Cursor cur = db.rawQuery( "select * from wordroot", new String[] {}); int columnNumber = cur.getColumnCount(); String cn = ""; for (int i = 0; i < columnNumber; i++) { String temp = cur.getColumnName(i); cn = cn + "\nlistColumnNames" + i + "\t" + temp; } cur.close(); TextView tv = new TextView(this); tv.setText(cn); setContentView(tv); } }