我正在尝试使用 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
。
谁能解释一下为什么会这样?我怎样才能得到预期的结果?
最佳答案
当我按照评论中的建议将 InputStream 包装在 TikaInputStream 中时,我可以看到问题已解决
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
关于java - Apache Tika 检测返回不一致的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31613838/