有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将sqlite数据库中的blob数据解码为可读文本

我有一个Sqlite数据库文件,其中包含blob数据。 我只知道数据库中有blob数据,我知道预期的输出应该是什么。 blob数据的预期输出应该是带有其他文本的Mac地址

我尝试获取十六进制输出,但并没有真正帮助我获取数据库中的预期输出。我还使用了十六进制编辑器和sqlite查看器,但只显示乱七八糟的不可读文本

下面是一些代码,我试图从blob数据中获取字节,但没有产生我期望的输出。Sqlite在Java中没有getBlob函数

if (rs.next()) {
    byte[] buffer = rs.getBytes(1);
    System.out.println(buffer.toString());
}

blob的预期输出应该是:“JOHN A6:44:33:A4:G5:A4”

这是一个十六进制转储0008f473eb41示例 e8ba3b1c

如何以编程方式检索blob数据并在sqlite中解码blob的内容


共 (1) 个答案

  1. # 1 楼答案

    现在您正在打印byte[]数组toString()。Java中的数组没有以有意义的方式实现

    您可以尝试将byte[]数组转换为String,方法是:

    new String(buffer, Charsets.UTF_8)
    

    如果这不起作用,请使用rs.getBinaryStream(1)获取表示该值的InputStream,并根据this answer读取它