Нет никакого способа отличить CSV от TXT, кроме как по имени файла!

дал.csv используя файл Excel, и я написал следующий код, используя 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».

Тика так плохо или я что-то пропустил?

 Gagravarr27 окт. 2017 г., 14:39
Нет никакого способа отличить CSV от TXT, кроме как по имени файла!
 gstackoverflow26 окт. 2017 г., 22:22
@Gagravarr Я не хочу указывать имя, потому что, если я переименую foo.txt в foo.csv - Тика думает, что это csv
 Gagravarr26 окт. 2017 г., 20:24
Вы теряете имя файла, создаете ненужные объекты и, как правило, слишком сложны! Почему бы просто не сделатьTika.detect (File) ?
 gstackoverflow26 окт. 2017 г., 22:11
@Gagravarr,System.out.println (новый Tika (). Обнаружения (inputStream)); возвращаетсятекст / обычный

Ответы на вопрос(0)

Ваш ответ на вопрос