我想將我的樣本數據庫從我的資產文件夾複製到/ data/data/packagename/databases /目錄以便稍後在應用程序中使用它。Android:從資產文件夾複製數據庫
我已經看過很多教程和其他解決方案,像這裏(Copy Database from assets folder in unrooted device)和這裏(copy database from assets to databases folder),但它不適合我。我沒有錯誤,但已複製的數據庫是空的。我的編碼有問題嗎?
這是我的複製數據庫的編碼。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.activity_dictionary_type);
File dbfile=new File("data/data/com.example.myidictionary/databases","DefinitionDB");
if (!dbfile.exists()) {
try {
copyDatabase(dbfile);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Toast.makeText(getApplicationContext(), "Sample data is being copied", Toast.LENGTH_LONG).show();
}
else
Toast.makeText(getApplicationContext(), "Database Exist", Toast.LENGTH_LONG).show();
}
private void copyDatabase(File dbFile) throws IOException
{
InputStream is = this.getAssets().open("DefinitionDB");
OutputStream os = new FileOutputStream(dbFile);
byte[] buffer = new byte[1024];
while (is.read(buffer) > 0)
{
os.write(buffer);
}
os.flush();
os.close();
is.close();
}
有,你可以用它來從數據庫中的資源文件夾中複製一個開源庫:https://github.com/jgilfelt/android-sqlite-asset-helper – rubenlop
是否有關於如何使用任何樣品從資源文件夾複製數據庫的開源庫?我仍然是這個領域的新手,仍然有很多東西需要學習。 –
也確保你給予mkdir權限 - 即將父目錄創建設置爲true。 –