Apache Tika检测返回不一致的结果

时间:2015-07-24 15:01:25

标签: java file-type apache-tika

我正在尝试使用apache tika找出文件的内容类型。

意味着我发现这种不一致的行为。

final Tika tika = new Tika();

String fileType = tika.detect(uploadedInputStream);
System.out.println(fileType);
String newFileType = tika.detect(uploadedInputStream);
System.out.println(newFileType);

上面的代码正在给我输出

application/pdf
application/octet-stream

我希望在两种情况下输出都为application/pdf

任何人都可以解释为什么会这样吗?我怎样才能得到预期的结果?

1 个答案:

答案 0 :(得分:0)

当我按照评论中的建议在TikaInputStream中包装InputStream时,我可以看到问题已解决

    final Tika tika = new Tika();
    TikaInputStream tikaInputStream = TikaInputStream.get(uploadedInputStream);
    String fileType = tika.detect(tikaInputStream);
    System.out.println(fileType);
    final Tika newTika = new Tika();
    String newFileType = newTika.detect(tikaInputStream);
    System.out.println(newFileType);

输出:

     application/pdf
     application/pdf