我需要一个本地数据库用于我的应用程序。我创建了一个并加密了它。(我知道pw)。现在我想将这个数据库加载到原始应用程序的资产文件夹。我想在复制前解密它。 我有这样的复制代码,这适用于未经编辑的数据库。 我如何为加密的db.Thanks
翻译这个private void copyDataBase() throws IOException {
//Open your local db as the input stream
InputStream myInput = myContext.getAssets().open(DB_NAME);
// Path to the just created empty db
String outFileName = DB_PATH + DB_NAME;
//Open the empty db as the output stream
OutputStream myOutput = new FileOutputStream(outFileName);
//transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[5120];
int length;
while ((length = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
//Close the streams
myOutput.flush();
myOutput.close();
myInput.close();
}
答案 0 :(得分:0)
执行此操作的正确方法是将加密数据库复制到本地文件夹中。然后,您可以使用SQLCipher打开它并使用sqlcipher_export()将其转换为标准(非加密)SQLite数据库。