gpt4 book ai didi

java - 如何使用 Java 识别 Oracle 数据库中的 zip 压缩文件

转载 作者:行者123 更新时间:2023-12-02 00:50:18 25 4
gpt4 key购买 nike

如何识别结果集条目是 BLOB 还是压缩的 BLOB?如果 BLOB 已压缩,我需要将其解压缩。

PreparedStatement stmt = conn.prepareStatemant("select BLOB from X");
ResultSet rs = stmt.executeQuery();
while(rs.next()){
Blob blob = rs.getBlob(1);
if(isZippedBlob(blob)){
Blob unzipBlob = unzipBlob(blob);
}
}
}

我希望有一个实现版本

boolean isZippedBlob(Blob) 

或者我可以识别压缩的 BLOB 和 BLOB 的任何类型的算法。

最佳答案

我从 BLOB 中读取字节

    byte[] bArr = rs.getBlob(1).getBytes(1, (int) rs.getBlob(1).length());

我收到了 31, -117, 8。.zip 的神奇数字是 50 4B 03 04 = 80 75 03 04(十进制)所以我很好奇,实际上它不是一个zip文件,而是一个gzip文件,并且以12月份的1F 8B 08 -> 31 139 08开头。所以我需要做的就是将前 3 个字节与 31 139(256-117) 8 进行比较。

关于java - 如何使用 Java 识别 Oracle 数据库中的 zip 压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57865185/

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