Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java识别Oracle数据库中的zip压缩文件_Java_Oracle11g_Zip_Blob - Fatal编程技术网

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

如何使用Java识别Oracle数据库中的zip压缩文件,java,oracle11g,zip,blob,Java,Oracle11g,Zip,Blob,如何识别Resultset条目是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)){

如何识别Resultset条目是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进行比较。

zip文件有一个zip文件头。您(或库)可以检查第一个字节,看看它是否有zip头。@Kayaman感谢您的建议。我使用rs.getBlob(1.getBytes(1,(int)rs.getBlob(1.lengt());但是我得到的值不符合这个特定的标题。