apache tika检测文件是否损坏

2022-10-15,,,,

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;
        }
    }

  输出结果:

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

 

《apache tika检测文件是否损坏.doc》

下载本文的Word格式文档,以方便收藏与打印。