检查Gzip中的文件是否是JAVA中的Xml?
如何在java中检查GZip归档文件中的文件是否为XML文件?因为我尝试了这个,但得到了错误: java.lang.NullPointerException 位于org.apache.tika.io.TikaInputStream.get(TikaInputStream.java:265)检查Gzip中的文件是否是JAVA中的Xml?,java,xml,file,content-type,apache-tika,Java,Xml,File,Content Type,Apache Tika,如何在java中检查GZip归档文件中的文件是否为XML文件?因为我尝试了这个,但得到了错误: java.lang.NullPointerException 位于org.apache.tika.io.TikaInputStream.get(TikaInputStream.java:265) 您真的需要查看文件内容吗?无法仅检查文件扩展名?是。因为我的gzip中的文件没有扩展名,所以您使用的是什么版本的Apache Tika?如果不是最新版本,升级时会发生什么?相同的错误。我不知道为什么tae.g
您真的需要查看文件内容吗?无法仅检查文件扩展名?是。因为我的gzip中的文件没有扩展名,所以您使用的是什么版本的Apache Tika?如果不是最新版本,升级时会发生什么?相同的错误。我不知道为什么tae.getFile()为null,因为当我生成tae.getSize()时,它返回我:5600。您真的需要查看文件内容吗?无法仅检查文件扩展名?是。因为我的gzip中的文件没有扩展名,所以您使用的是什么版本的Apache Tika?如果不是最新版本,升级时会发生什么?相同的错误。我不知道为什么tae.getFile()为空,因为当我生成tae.getSize()时,它返回我:5600。
public static boolean presenceFichierXmlDansArchiveGzip (final File fichier) {
try (final FileInputStream fis = new FileInputStream(fichier);
final GzipCompressorInputStream gzIn = new GzipCompressorInputStream(fis);
final TarArchiveInputStream tais = new TarArchiveInputStream(gzIn)) {
for (TarArchiveEntry tae = tais.getNextTarEntry(); tae != null; tae = tais.getNextTarEntry()) {
if (tae.isFile()) {
Tika tika = new Tika();
String contentType = tika.detect(tae.getFile());
System.out.println("contentType : "+ contentType + ",Name :"+tae.getName());
if (!StringUtils.containsIgnoreCase(contentType, FICHIER_XML)) {
return false;
}
}
}
}
catch (IOException e){
LOGGER.error("Erreur lors de l'appel de la fonction presenceFichierXmlDansArchiveGzip " + e);
}
return true;
}