【问题标题】:Strange IOException when buffering inputStream in Java在Java中缓冲inputStream时出现奇怪的IOException
【发布时间】:2011-02-26 01:49:16
【问题描述】:

我有一个关于缓冲 pdf 和 odt 文件的 inputStream 的奇怪问题。它们并没有那么大,只有 5 - 15 页,但总是这样

java.io.IOException: Stream closed
    at java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:134)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
    at java.io.FilterInputStream.read(FilterInputStream.java:90)

您可以看到source code here。我在这里问,因为它似乎不是 Apache Tika 问题,而是 JVM 问题。

已编辑:对于这么愚蠢的问题,抱歉伙计们,现在是凌晨 4 点 :-) 问题是 5 次测试中有 4 次失败,所以我预计类加载器会找到这些资源,但它没有。有一个错字“文件/文件”......仍然不明白为什么其中一个通过了

【问题讨论】:

    标签: java jvm inputstream buffering


    【解决方案1】:

    很抱歉提出一个明显的问题,但您尝试加载的资源文件是否可以在测试的类路径中访问?

    String resourceLocation = "file/Designandrealizationofanintranetportal.pdf";

    【讨论】:

      【解决方案2】:

      极不可能是 JVM / Java 类库问题。出错的可能是您的测试用例或 Tika。

      当某些内容试图从已关闭的 Stream 中读取时,会发生异常。并且标准流类不会自发关闭。


      如果我要弄清楚真正的问题是什么,我会使用调试器运行其中一个测试用例,在 BufferedInputStream.close() 方法上设置一个断点,并尝试找出它出现在哪里以及出现的原因调用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-19
        • 1970-01-01
        • 2019-08-12
        • 1970-01-01
        • 2011-01-10
        • 2014-04-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多