我有一個現有的數據庫,我已經能夠複製到我的文件資源管理器,去Youtube和tweeked代碼,但我得到3個數據庫。在/data/data/com.xxx.xxx/databases我得到以下內容:額外的數據庫正在被添加到Android文件瀏覽器
ab.sqlite - 這是我想要的 ab.sqlite-journal - 我認爲這是一個Android文件,需要下/data/data/com.xxx.xxx創建
現在我得到如下:
databasesab.sqlite - 從哪裏是這個未來?
這裏是DataBaseHelper代碼:
`private static final String DB_PATH ="/data/data/com.xxx.xxx/databases";
private static final String DB_NAME ="ab.sqlite";
private static final int DB_VERSION=1;
//inserting Table names and column names
public static final String TABLE_NAME = "abc";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_1 = "Voltage";
public SQLiteDatabase dbSqlite;
private final Context myContext;
public DatabaseHelper (Context context) {
super(context, DB_NAME, null, DB_VERSION);
this.myContext = context;
}
@Override
public void onCreate (SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void createDatabase() {
createDB();
}
private void createDB() {
boolean dbExist = DBExists();
if (!dbExist) {
//Method we creates an empty database to default system location
//Overwrite the database with our database.
this.getReadableDatabase();
//Copy the database we included
copyDBFromResource();
}
}
private boolean DBExists() {
SQLiteDatabase db = null;
try {
String databasePath = DB_PATH + DB_NAME;
db = SQLiteDatabase.openDatabase (databasePath, null, SQLiteDatabase.OPEN_READWRITE);
db.setLocale (Locale.getDefault());
db.setVersion(1);
}catch (SQLiteException e) {
Log.e("SqlHelper", "database not found");
}
if (db != null) {
db.close();
}
return db !=null ? true : false;
}
private void copyDBFromResource() {
InputStream inputStream = null;
OutputStream outStream = null;
String dbFilePath = DB_PATH + DB_NAME;
try {
inputStream = myContext.getAssets().open(DB_NAME);
outStream = new FileOutputStream(dbFilePath);
byte [] buffer = new byte [1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outStream.write(buffer, 0, length);
}
outStream.flush();
outStream.close();
inputStream.close();
} catch (IOException e) {
throw new Error ("Problem copying database from resource file.");
}
}
}
`
任何幫助將不勝感激,因爲我真的似乎無法找出問題。
Eclipse是建議不要硬編碼告訴我DB_PATH做到以下幾點: Context.getFilesDir()。getPath 這個formum的opion是什麼 – user3324600
對不起,最後一件事...什麼是ab.sqlite-journal文件 – user3324600
Eclipse是正確的,你不應該定義你的DB路徑..我通常這樣做:Strin g databasePath = context.getDatabasePath(DB_NAME).getAbsolutePath(); – JustinMorris