apache tika检测文件是否损坏的方法

 更新时间:2019年09月20日 13:40:59   作者:随遇而安~~~  
Apache Tika用于文件类型检测和从各种格式的文件内容提取的库。这篇文章主要介绍了apache tika检测文件是否损坏,需要的朋友可以参考下

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检测文件是否损坏的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • Linux使用nslookup和dig来查询域名和ip信息

    Linux使用nslookup和dig来查询域名和ip信息

    nslookup 和 dig命令一般用于查询 DNS服务器,获取域名、IP地址等DNS记录信息,下面小编就来为大家介绍一下Linux如何使用nslookup和dig来查询域名和ip信息吧
    2025-03-03
  • Linux内核参数调整方法

    Linux内核参数调整方法

    由于Linux的内核参数信息都存在内存中,因此可以通过命令直接修改,并且修改后直接生效。但是,当系统重新启动后,原来设置的参数值就会丢失,而系统每次启动时都会自动去/etc/sysctl.conf文件中读取内核参数,因此将内核的参数配置写入这个文件中,是一个比较好的选择。
    2017-11-11
  • linux如何编译安装新内核支持NTFS文件系统(以redhat7.2x64为例)

    linux如何编译安装新内核支持NTFS文件系统(以redhat7.2x64为例)

    这篇文章主要介绍了linux如何编译安装新内核支持NTFS文件系统(以redhat7.2x64为例),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-10-10
  • CentOS使用EPEL源的方法步骤

    CentOS使用EPEL源的方法步骤

    本篇文章主要介绍了CentOS使用EPEL源的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Apache 认证总结

    Apache 认证总结

    经常上网的读者会遇到这种情况:访问一些网站的某些资源时,浏览器弹出一个对话框,要求输入用户名和密码来获取对资源的访问。
    2009-05-05
  • CentOS下采用Crontab实现PHP脚本定时任务

    CentOS下采用Crontab实现PHP脚本定时任务

    本篇文章主要介绍了CentOS下采用Crontab实现PHP脚本定时任务,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 在麒麟V10服务器上编译安装Storm的详细过程

    在麒麟V10服务器上编译安装Storm的详细过程

    这篇文章主要介绍了在麒麟V10服务器上编译安装Storm的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • KVM与Xen虚拟化技术深度对比分析

    KVM与Xen虚拟化技术深度对比分析

    文章比较了Xen和KVM两种虚拟化技术的架构设计、性能指标、安全与隔离机制、生态系统适配、运维复杂度等,最终建议在云原生场景下优先选择KVM,而在对安全性要求极高的传统企业场景下,Xen仍具有一定的优势
    2025-02-02
  • Linux如何定时删除7天前的日志文件

    Linux如何定时删除7天前的日志文件

    这篇文章主要介绍了Linux如何定时删除7天前的日志文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Apache设置目录禁止访问

    Apache设置目录禁止访问

    这篇文章主要介绍了如何在Apache中设置目录禁止访问,非常的简单实用,有需要的朋友可以参考下
    2014-11-11

最新评论