пятница, 15 января 2021 г.

File type detect

 Библиотека для определения типа файла Apache tika

<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.25</version>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<version>1.25</version>
</dependency>

Detector detector = TikaConfig.getDefaultConfig().getDetector();
MediaType mimetype = detector.detect(TikaInputStream.get(resource.getInputStream()), new Metadata());

zipEntry fileName encoding problem.
private String convertToText(byte[] name) {
Charset detectedCharset = IBM_866;
try {
detectedCharset = new UniversalEncodingDetector().detect(new ByteArrayInputStream(name), new Metadata());
} catch (IOException e) {
log.error("Error on charset detecting");
}

if (detectedCharset.equals(UTF_8)) {
return new String(name, UTF_8);
} else {
return new String(name, IBM_866);
}
}