我有一个关于缓冲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次失败,所以我预计类加载器会找到这些资源,但事实并非如此。有一个错字“文件/文件”... Stil不明白为什么其中一个传递
答案 0 :(得分:2)
很抱歉提出一个明显的问题,但是您尝试加载的资源文件是否可以在测试的类路径中访问?
String resourceLocation = "file/Designandrealizationofanintranetportal.pdf";
答案 1 :(得分:2)
极不可能是JVM / Java类库问题。它将是您的测试用例或Tika有问题。
当某些内容尝试从已关闭的Stream中读取时,会发生异常。并且标准流类不会自发地关闭。
如果我要弄清楚真正的问题是什么,我会使用调试器运行其中一个测试用例,在BufferedInputStream.close()
方法上设置一个断点,并尝试找出它的位置,以及为什么它正在被召唤。