【问题标题】:ZipEntry returns null from BLOB ZipArchiveInputStreamZipEntry 从 BLOB ZipArchiveInputStream 返回 null
【发布时间】:2019-05-21 23:15:55
【问题描述】:

主要问题是我的 zipEntry 结果为空。我正在做的是从数据库中获取 BLOB.zip,将其定向到输入流,从那里到 zipArchiveInputStream 和每次返回 null 的 ZipEntry。在使用具有相同 null 结果的 ZipInputStream 之后,我决定使用 ZipArchiveInputStream。

public byte[] getXMLStream() {              
    try {
        return this.jdbcTemplate.queryForObject("SELECT SAVEDATA FROM JDBEVPP1.TEVP005 WHERE GFNR = 357420", byte[].class); }                                   
    catch(DataAccessException ex) {
        ex.printStackTrace();
        return null;}}

@Override
public void getXMLdata() {
    byte[] str = getXMLStream();
     InputStream myInputStream = new ByteArrayInputStream(str);
     ZipArchiveInputStream fis = new ZipArchiveInputStream(myInputStream);
     ZipEntry entry = null;
     try { 
         while ( (entry = fis.getNextZipEntry()) != null ) { 
            System.out.println(entry.getName());
         }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

我只需要获取这个 xml 并在控制台中打印它以进行测试。知道这里出了什么问题或如何使其工作吗?

编辑:内部 BLOB 是我需要在控制台上显示的 XML 格式。

【问题讨论】:

  • 将 BLOB 流保存到文件中,然后使用编辑器检查魔术文件头以确保它确实是 ZIP 文件。还可以使用 7zip 之类的 zip 工具来检查 BLOB 是否是有效的压缩存档。
  • 似乎唯一的错误在于 xml 的类型。我用过 GZIPInputStream 并且它有效。
  • GZIP 和 ZIP 是两种完全不同的格式...
  • 我之前并不知道。这是非常美好的一天,我今天学到了很多东西。 :)

标签: java xml inputstream ziparchive


【解决方案1】:

我通过使用 GZIPInputStream 解决了这个问题。最后好像是通用的xml..

try {
        GZIPInputStream gzip = new GZIPInputStream(bys);
        Reader decoder = new InputStreamReader(gzip, "UTF-8");
        BufferedReader buffered = new BufferedReader(decoder);
        System.out.println(buffered.readLine());
        String data = buffered.readLine();
        InputSource xml = new InputSource(new StringReader(data));
        System.out.println(xml);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 2014-06-29
    • 2021-06-11
    • 1970-01-01
    • 2021-11-07
    • 2012-02-28
    • 2017-09-25
    相关资源
    最近更新 更多