我看,並試圖對同一個問題的迴應一打,和我有沒有運氣。我很確定,我正在嘗試做的事情,並不是火箭科學。複製文件從資產到/數據/數據
不幸的是,我不能使用我正在使用的設備,所以請不要在生根周圍留下任何意見,我只需要,如標題所示,將文件從/ assets /文件夾複製到我的/ data/data /目錄設備。
隨函附上的代碼我使用:
private void copyDatabase(File dbFile) throws IOException {
InputStream is = context.getAssets().open(DB_NAME);
OutputStream os = new FileOutputStream(dbFile);
byte[] buffer = new byte[1024];
while (is.read(buffer) > 0) {
os.write(buffer);
}
os.flush();
os.close();
is.close();
}
這真的是沒腦子,我有一個名爲DB_NAME靜態字段指向資產的文件夾。調試這一行,證明所需文件被識別併成功輸出到內存。
失敗的線是下一個:... new FileOutputStream(dbFile);
我從另一個方法傳入。
DBFILE構造如下:
File dbFile = context.getDatabasePath(DB_NAME);
再次,沒有什麼特別的。這抓住了當前上下文(應用程序)的數據庫的路徑和追加數據庫的名稱到,所以爭論的緣故,我們有,
/data/data/co.za.simple.sqlite/database/sqlitedb.db
的錯誤消息,文件或目錄不存在,這對於任何將要下載應用程序的普通用戶的首次加載而言是好的,現在,默認行爲爲FileOutputStream(string)
,據我所知它是如果它不存在,它會創建它。
如上所述,第一次運行,該文件不存在,但它給我一個錯誤,說該文件或目錄找不到。這讓我相信實際的錯誤是應用程序沒有寫入/ data /目錄的權限,所以我添加了我在列表中看到的唯一權限,這適用於寫入存儲:
android.permission.WRITE_EXTERNAL_STORAGE
然而,這絕對沒有影響。
如前所述,我不能根本設備和我也不會想在這一點上。
我已經瀏覽了無數的博客,YouTube視圖,甚至在這裏關於完全相同的問題,並且這些解決方案都不適用。
我錯過了什麼?
看看這個帖子http://stackoverflow.com/questions/22903540/android-copy-files-from-assets-to-data-data-folder – Fareya 2014-11-20 22:45:15