我使用andpor/react-native-sqlite-storage来管理React native中的SQLite数据库。现在我想将我的所有数据库备份到加密文件中,然后在以后恢复。我知道如何在android中执行此操作但不知道如何在本机中实现此功能。
如果它在android下面代码可以帮助我备份数据库而不加密。
final String inFileName = "/data/data/<your.app.package>/databases/foo.db";
File dbFile = new File(inFileName);
FileInputStream fis = new FileInputStream(dbFile);
String outFileName = Environment.getExternalStorageDirectory()+"/database_copy.db";
// Open the empty db as the output stream
OutputStream output = new FileOutputStream(outFileName);
// Transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer))>0){
output.write(buffer, 0, length);
}
// Close the streams
output.flush();
output.close();
fis.close();
所以我的问题是如何在React Native上做到这一点。如果有可用的图书馆,请建议我。
答案 0 :(得分:2)
使用react-native-fs包,也可以在react-native中采用相同的方法。
import RNFS from 'react-native-fs';
RNFS.readFile("/data/data/<your.app.package>/databases/foo.db", "base64")
.then(value => RNFS
.getAllExternalFilesDirs()
.then(path => RNFS.writeFile(path + "/" + "database_copy.db", value, "base64"))
.then(() => console.log("Successful"))
)