我需要将我的数据库从Assets文件夹复制到“/data/data/com.example.provadatabase/databases /”
我正在使用此代码
private static String DB_PATH = "/data/data/com.example.provadatabase/databases/";
private static String DB_NAME = "MN1";
然后创建一个数据库(如果不存在)则应该从资产
将数据库复制到创建的数据库中InputStream myInput = myContext.getAssets().open(DB_NAME);
String outFileName = DB_PATH + DB_NAME;
OutputStream myOutput = new FileOutputStream(outFileName);
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
myOutput.flush();
myOutput.close();
myInput.close();
}
数据库已经很好地创建了,但它不会将我的数据库复制到数据库文件夹,代码会发出此警告“不要硬编码”/ data /“;请使用Context.getFilesDir()。getPath()代替”
我应该用什么来复制我的数据库?
答案 0 :(得分:1)
错误告诉你的确切。
String outFileName = context.getDatabasePath(DatabaseHelper.DB_NAME).getParentFile() + DB_NAME;
这假定上下文可用,它通常在构造函数中。但老实说,我只会使用SQLiteAssetHelper。