欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

apache tika检测文件是否损坏

程序员文章站 2023-04-05 15:49:46
Apache Tika用于文件类型检测和从各种格式的文件内容提取的库。 将上传文件至服务器,进行解析文件时,经常需要判断文件是否损坏。我们可以使用tika来检测文件是否损坏 maven引入如下: 如果jar包冲突时可以引入如下: 使用tika检测文件是否损坏: 如果从输入流读取失败,则parse方法 ......

apache tika用于文件类型检测和从各种格式的文件内容提取的库。

将上传文件至服务器,进行解析文件时,经常需要判断文件是否损坏。我们可以使用tika来检测文件是否损坏

  • maven引入如下:
<dependency>
<groupid>org.apache.tika</groupid>
<artifactid>tika-app</artifactid>
<version>1.18</version>
</dependency>
<dependency>
<groupid>xerces</groupid>
<artifactid>xercesimpl</artifactid>
<version>2.11.0</version>
</dependency>

  如果jar包冲突时可以引入如下:

<dependency>
    <groupid>org.apache.tika</groupid>
    <artifactid>tika-core</artifactid>
    <version>1.18</version>
</dependency>
<dependency>
    <groupid>org.apache.tika</groupid>
    <artifactid>tika-parsers</artifactid>
    <version>1.18</version>
</dependency>
<dependency>
    <groupid>xerces</groupid>
    <artifactid>xercesimpl</artifactid>
    <version>2.11.0</version>
</dependency>
  • 使用tika检测文件是否损坏: 

  如果从输入流读取失败,则parse方法抛出ioexception异常,从流中获取的文档不能被解析抛tikaexception异常,处理器不能处理事件则抛saxexception异常

  当文档不能被解析时,说明文档损坏

  • 执行过程:
public static void main(string[] args) {
        try {
            //assume sample.txt is in your current directory
            file file = new file("d:\\测试.txt");
            boolean result = isparsefile(file);
        } catch (exception e) {
            e.printstacktrace();
        }
    }

    /**
     * 验证文件是否损坏
     *
     * @param file 文件
     * @return true/false
     * @throws exception
     */
    private static boolean isparsefile(file file) throws exception {
        try {
            tika tika = new tika();
            string filecontent = tika.parsetostring(file);
            system.out.println(filecontent);
            return true;
        } catch (tikaexception e) {
            return false;
        }
    }

  输出结果:

测试数据---读取文本内容