gpt4 book ai didi

java - 从 sqlback 格式的文件中提取数据以转换为 CSV

转载 作者:行者123 更新时间:2023-12-02 07:36:00 24 4
gpt4 key购买 nike

我有一个代表 sqlite 数据库文件的 sqback 文件。我想从这个 sqback 文件中提取数据,即表名和内容,并将其转换为 csv 文件格式。我想使用 Java 来完成此操作。

** 在处理之前,sqback 文件已经从 Android 设备上传到电脑。所以我需要一个适合服务器端的解决方案。

有人知道如何执行此类任务吗?

最佳答案

如果使用 Android,您可以利用内置的 SQLiteDatabase 和 SQLiteOpenHelper。您将找到您需要的所有信息 here

解析完所有内容后,您可以使用File按照您想要的方式导出到CSV。 .

编辑:所以基本上你需要做的是通过读取字节来解析它们,这样就可以访问内容。在某些情况下,您甚至不需要将它们转换为字符串,因为您可能只需要字节的值。 (即:偏移量:44 长度:4 描述:架构格式编号。支持的架构格式为 1、2、3 和 4。)。您始终可以使用任何十六进制编辑器检查您的值是否正确,甚至使用任何类型的文本编辑器打开 sqlite 文件也会有所帮助。

让我们从头开始。首先,读取文件。两种方法

  • a.读取整个文件并解析它
  • b.以 block 的形式读取并解析整个文件(推荐,特别是对于较大的文件)

两种方法都会共享以下大部分代码:

File file = new File("YOUR FILE ROUTE");
int len = 1024 * 512; //512KB

try {
fis = new FileInputStream(file);
} catch (FileNotFoundException e1) {
fis = null;
e1.printStackTrace();
}
byte[] b = new byte[len];
int bread;

try {

while((bread = fis.read(b, 0, len))!=-1)
{
if(parseBlock(b, bread)==1)
return;
}

fis.close();

} catch (IOException e) {
e.printStackTrace();
}

区别在于获取部分块并动态解析它们(我想这对你有用)和获取整个 block 之间的区别就是直接输入:

fis.read(b, 0, fis.available);

而不是 while 循环。

最终你的方法是正确的,这就是将字节放入字符串的方法。 (新字符串(b))。而且第一个字符很可能代表奇怪的符号,如果你看一下SQL的文件格式,这些是用于存储一些元数据的保留字节。使用任何文本编辑器打开 sqlite 文件,并检查您在其中看到的内容是否与代码中显示的内容匹配。

关于java - 从 sqlback 格式的文件中提取数据以转换为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12220131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com