Oracle javaee:解压缩BLOB并将文件放入其中

Oracle javaee:解压缩BLOB并将文件放入其中,oracle,jakarta-ee,zip,blob,Oracle,Jakarta Ee,Zip,Blob,我正在构建一个JavaEE应用程序,在我的servlet中,我正在从Oracle数据库检索一个BLOB 这个查询非常有效 现在我不知道BLOB的确切格式,它应该是一种压缩文件,因为在sqldeveloper中,我可以将它保存在桌面上,用.ZIP扩展名重命名它,解压缩它,在里面我可以找到一个TXT文件 所以它应该是一个已经压缩的txt文件 我想在我的Javaservlet中检索txt文件内容。因此,解压缩文件并读取txt文件 我尝试过使用GZIPInputStream: gStream = new

我正在构建一个JavaEE应用程序,在我的servlet中,我正在从Oracle数据库检索一个BLOB

这个查询非常有效

现在我不知道BLOB的确切格式,它应该是一种压缩文件,因为在sqldeveloper中,我可以将它保存在桌面上,用.ZIP扩展名重命名它,解压缩它,在里面我可以找到一个TXT文件

所以它应该是一个已经压缩的txt文件

我想在我的Javaservlet中检索txt文件内容。因此,解压缩文件并读取txt文件

我尝试过使用GZIPInputStream:

gStream = new GZIPInputStream(blob.getBinaryStream());
如前所述

但我得到一个例外:“不是GZIP格式”

你能帮帮我吗

  • 我需要先打开才能解压这个BLOB吗
  • 那么如何在里面获取txt文件呢

  • 和是完全不同的格式。前者是存档和压缩格式,后者只是压缩格式。您需要一个能够理解zip格式的输入流,请尝试使用。

    并且是完全不同的格式。前者是存档和压缩格式,后者只是压缩格式。您需要一个能够理解zip格式的输入流,请尝试。

    好的,我正在尝试。。。但是有一个ZipInputStream对象,我如何在压缩的blob中检索txt文件的内容呢?我还使用ZipInputStream中的FileOutputStream创建了一个文件,但是该文件是空的。。。它将写入哪个文件?拉链还是里面的TXT。。。hmmmgZipStream=新的ZipInputStream(blob.getBinaryStream());字节[]buf=新字节[1024];显示gZipStream.read(buf)结果是-1…好的,我正在尝试。。。但是有一个ZipInputStream对象,我如何在压缩的blob中检索txt文件的内容呢?我还使用ZipInputStream中的FileOutputStream创建了一个文件,但是该文件是空的。。。它将写入哪个文件?拉链还是里面的TXT。。。hmmmgZipStream=新的ZipInputStream(blob.getBinaryStream());字节[]buf=新字节[1024];显示gZipStream.read(buf)结果是-1。。。