Apache Commons Compress APIを使用して、ファイルの圧縮タイプをそのコンテンツから(つまり、ファイル拡張子からではなく)確実に検出する簡単な方法はありますか?
Apache Tikaを使用すると、次のことができます
Tika tika = new Tika();
String path = <the full path to the file examined, including the filename>;
FileInputStream fis = new FileInputStream(new File(path));
String type = tika.detect(fis);
type変数には、検出されたファイル コンテンツの MIME タイプ (たとえば、text/plain、application/zip など) が入ります。
理想的には、Tika が AR アーカイブ形式を "text/plain" として誤検出するように見えるという事実など、さまざまな理由から、このプロセスに Tika を関与させたくありません。AR アーカイブ形式は、Commons Compress によって作成できる形式の 1 つです。