这个问题在这里已有答案:
我正在处理文本文件,图像和文档(.log,.txt,.pdf,.doc,.docx,.jpeg,.jpg,.png,.tiff等。)我需要从文件中获取一些元数据他们的内容不是来自扩展。所以,我的问题是:
Q1。如何使用Java区分这些类别的文件(纯文本文件,文本文档(.docx),pdfs,图像)?
Q2。 Java中的任何库在这个过程中会有所帮助吗?
Q3。包含扫描图像的pdf和包含文本的pdf在任何属性方面是否有所不同?
PS:我对此没有太多的专业知识,如果我的调查问卷错了,请好好纠正我。
你可以使用像Apache Tika这样的东西来检测MIME类型。它分析二进制数据以检测MIME类型。
从前几个字节(它是%PDF)检测PDF。如果您想了解有关元数据的更多信息,可以使用类似Apache PDFBox的内容,它允许检索元数据(请参阅:https://pdfbox.apache.org/1.8/cookbook/workingwithmetadata.html)
您可以使用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在任何属性方面是否有所不同?
您还可以从包含图像和文本文件的pdfs中提取图像和文本文件。这称为嵌入式提取。检查一下: