我正在处理文本文件,图像和文档(.log,.txt,.pdf,.doc,.docx,.jpeg,.jpg,.png,.tiff等)。我需要获取一些元数据基于文件的内容而不是扩展名。所以,我的问题是:
Q1。如何使用Java区分这些类别的文件(纯文本文件,文本文档(.docx),pdf,图像)?
Q2。 Java中的任何库在此过程中会有所帮助吗?
Q3。包含扫描图像的pdf和包含文本的pdf在任何属性或与此相关的内容上是否有所不同?
PS:我对此没有太多专业知识,所以如果我在问卷调查中写错了,请纠正我。
答案 0 :(得分:0)
您可以使用Apache Tika之类的东西来检测MIME类型。它分析二进制数据以检测MIME类型。
从前几个字节(%PDF)中检测到PDF。如果您想了解有关元数据的更多信息,可以使用Apache PDFBox之类的工具,该工具可以检索元数据(请参阅:https://pdfbox.apache.org/1.8/cookbook/workingwithmetadata.html)
答案 1 :(得分:0)
您可以使用Apache Tika内容检测。
import java.io.File;
import org.apache.tika.Tika;
public class Typedetection {
public static void main(String[] args) throws Exception {
//assume example.mp3 is in your current directory
File file = new File("example.mp3");//
//Instantiating tika facade class
Tika tika = new Tika();
//detecting the file type using detect method
String filetype = tika.detect(file);
System.out.println(filetype);
}
Q3。包含扫描图像的pdf和包含文本的pdf在任何属性或与此相关的内容上是否有所不同?
您还可以从包含图像和文本文件的pdf中提取图像和文本文件。这称为嵌入式提取。 检查: