在一种情况下,我试图导出整个sqlite数据库,而在另一种情况下,仅通过单击项目的按钮(备份功能)仅导出选定的表。我用谷歌搜索,但似乎是负面的回应。我为此使用了https://github.com/NathanaelA/nativescript-sqlite插件。还需要使用文件选择器或其他工具导入导出的数据库。现在,我正在尝试通过参考https://stackoverflow.com/a/49146471/8750174使用带有本地脚本的Java代码来实现此目标。任何本机方式的帮助将不胜感激。预先感谢。
let is = java.io.InputStream = null;
let os = java.io.OutputStream = null;
try {
is = new java.io.FileInputStream('/data/data/org.nativescript.Aads/databases/mydatabse.db');
os = new java.io.FileOutputStream('/storage/emulated/0/aads_Backup/dbincsvformat.csv');
const buffer = Array.create('byte', 4096);
while ((is.read(buffer).length) > 0) {
os.write(buffer, 0, length);
}
} catch (e) {
this.errorService.handleError(e);
} finally {
console.log('copy done');
is.close();
os.close();
}
答案 0 :(得分:0)
CSV只是文本文件中制表符分隔或逗号分隔的值。 {N}有其跨平台file-system module,支持对文件的读/写。
您所要做的就是将逗号分隔的字符串传递给writeText
/ writeTextSync
方法。
类似
const documents = fileSystemModule.knownFolders.documents();
const file = documents.getFile("test.csv");
file.writeTextSync(`1,2,3\n\r4,5,6`);