如何使用Java区分黑白文本文件,图像,文档?

时间:2018-08-30 07:10:24

标签: java text-files document file-type

我正在处理文本文件,图像和文档(.log,.txt,.pdf,.doc,.docx,.jpeg,.jpg,.png,.tiff等)。我需要获取一些元数据基于文件的内容而不是扩展名。所以,我的问题是:

Q1。如何使用Java区分这些类别的文件(纯文本文件,文本文档(.docx),pdf,图像)?

Q2。 Java中的任何库在此过程中会有所帮助吗?

Q3。包含扫描图像的pdf和包含文本的pdf在任何属性或与此相关的内容上是否有所不同?

PS:我对此没有太多专业知识,所以如果我在问卷调查中写错了,请纠正我。

2 个答案:

答案 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中提取图像和文本文件。这称为嵌入式提取。 检查:

https://svn.apache.org/repos/asf/tika/trunk/tika-example/src/main/java/org/apache/tika/example/ParsingExample.java