java - Apache tika 错误地检测 csv 的 mime 类型

标签 java csv apache-tika file-type probe

我使用 Excel 创建了 .csv 文件,并使用 apache tika 编写了以下代码:

public static boolean checkThatMimeTypeIsCsv(InputStream inputStream) throws IOException {
    BufferedInputStream bis = new BufferedInputStream(inputStream);
    AutoDetectParser parser = new AutoDetectParser();
    Detector detector = parser.getDetector();
    Metadata md = new Metadata();
    MediaType mediaType = detector.detect(bis, md);
    return "text/csv".equals(mediaType.toString());
}

public static void main(String[] args) throws IOException {
    System.out.println(checkThatMimeTypeIsCsv(new FileInputStream("Data.csv")));
}

但它返回false'。

蒂卡太糟糕了还是我错过了什么?

最佳答案

试试这个...

public static String checkThatMimeTypeIsCsv(String fileName ) throws Exception {
    File sourceFile = new File(fileName );
    DefaultDetector file_detector = new DefaultDetector();
    TikaInputStream file_stream = TikaInputStream.get(sourceFile);
    Metadata metadata = new Metadata();
    metadata.set(Metadata.RESOURCE_NAME_KEY, sourceFile.getName());
    MediaType mediaType = file_detector.detect(file_stream, metadata);              
    String file_type = mediaType.toString();
    System.out.println(file_type);
    return file_type;
}

关于java - Apache tika 错误地检测 csv 的 mime 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46960231/

相关文章:

java - 在 VisualStudio 2003 中调试 JNI 代码

java - OneNote 对 Apache Tika 解析器的支持

Java 套接字心跳

java - Spring - 使用属性占位符加载位于 war 文件或类路径之外但位于文件系统中的属性文件

c# - 动态 CSV 文件下载

dataframe - 如何使用 Julia 通过循环生成多个 DataFrame

c# - 将 C# 日期时间对象转换为 Excel 日期格式

java - Apache 提卡 : remove extra line breaks in result string

java - 使用 pdfbox 将 PDF 转换为 lucene 文档

java - Kindle-我可以从kindle paperwhite中获取数据吗?