Apache Tika を使用してファイルが破損しているかどうかを検出する方法

Apache Tika を使用してファイルが破損しているかどうかを検出する方法

Apache Tika は、さまざまな形式のファイルからファイル タイプを検出し、コンテンツを抽出するためのライブラリです。

ファイルをサーバーにアップロードして解析する場合、ファイルが破損しているかどうかを判断する必要があることがよくあります。ファイルが破損しているかどうかを検出するにはtikaを使用することができます

Maven は次のように紹介されています。

<依存関係>
  <グループID>org.apache.tika</グループID>
  <artifactId>tika アプリ</artifactId>
  <バージョン>1.18</バージョン>
</依存関係>
<依存関係>
  <groupId>クロスセクション</groupId>
  <artifactId>xercesImpl</artifactId>
  <バージョン>2.11.0</バージョン>
</依存関係>

jar パッケージに競合がある場合は、次のように導入できます。

<依存関係>
  <グループID>org.apache.tika</グループID>
  <artifactId>ティカコア</artifactId>
  <バージョン>1.18</バージョン>
</依存関係>
<依存関係>
  <グループID>org.apache.tika</グループID>
  <artifactId>tika-パーサー</artifactId>
  <バージョン>1.18</バージョン>
</依存関係>
<依存関係>
  <groupId>クロスセクション</groupId>
  <artifactId>xercesImpl</artifactId>
  <バージョン>2.11.0</バージョン>
</依存関係>

tika を使用して、ファイルが破損しているかどうかを検出します。

入力ストリームからの読み取りに失敗した場合、解析メソッドは IOException をスローします。ストリームから取得したドキュメントを解析できない場合は、TikaException がスローされます。プロセッサがイベントを処理できない場合は、SAXException がスローされます。

ドキュメントを解析できない場合は、ドキュメントが破損していることを示します。

実行プロセス:

パブリック静的voidメイン(String[] args) {
    試す {
      //sample.txtが現在のディレクトリにあると仮定します
      ファイル file = new File("D:\\Test.txt");
      ブール結果 = isParseFile(ファイル);
    } キャッチ (例外 e) {
      e.printStackTrace();
    }
  }
 
  /**
   * ファイルが破損していないか確認する*
   * @param ファイル ファイル * @return true/false
   * @例外をスローします
   */
  プライベート静的ブール値isParseFile(File file)は例外をスローします{
    試す {
      ティカ ティカ = 新しいティカ();
      文字列ファイルコンテンツ = tika.parseToString(ファイル);
      System.out.println(ファイルの内容);
      true を返します。
    } (TikaException e) をキャッチします {
      false を返します。
    }
  }

出力:

テストデータ---テキストコンテンツを読み取る

要約する

上記は、Apache Tika でファイルが破損しているかどうかを検出する方法です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • PHP に Apache mod_rewrite モジュールがインストールされているかどうかを検出する方法

<<:  スケーラブルな列の完全な例を実現するための Ant 設計 Vue テーブル

>>:  Mysql 8.0 のインストールとパスワードのリセットの問題

推薦する

vue ディレクティブ v-bind の使用と注意点

目次1. v-bind: 要素の属性にデータをバインドできる2. v-bind: は次のように省略で...

マウスのドラッグ効果を実現するJavaScript

この記事では、マウスドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

MySQL テーブルスペースのリカバリに対する正しいアプローチについての簡単な説明

目次予備的注釈問題の再現データ削除の原則データの再利用どの操作がデータホールの原因になりますか?表領...

Linux カーネル デバイス ドライバー カーネル リンク リストの使用上の注意

/******************** * カーネルにおけるリンクリストの応用********...

MySQL の最適化: サブクエリの代わりに結合を使用する

サブクエリの代わりにJOINを使用するMySQL はバージョン 4.1 以降で SQL サブクエリを...

Vue はアップロードされた画像に透かしを追加する機能を実装します

この記事では、Vueでアップロードされた画像に透かしを追加する具体的な実装コードを参考までに共有しま...

純粋な CSS3 で蝶が羽ばたく様子を再現する例

純粋なCSS3で蝶が羽ばたく様子を再現。まずはその効果をご覧ください どうですか?効果はかなりいいで...

MySQLストレージエンジンについて学びましょう

目次序文1. MySQL メインストレージエンジン: 2. さまざまなストレージエンジンがテーブルを...

MySQL 8.0 ウィンドウ関数の紹介と概要

序文MySQL 8.0 より前は、Oracle、SQL SERVER、PostgreSQL などの他...

CentOS7 は Docker のバージョン 19 をデプロイします (簡単なので、従ってください)

1. 依存パッケージをインストールする [root@localhost ~]# yum insta...

IE6 の iframe の水平スクロール バーの解決策

状況は以下のとおりです: (PS: 赤いボックスは iframe 領域を表し、灰色の四角形は上記の ...

Dockerはmysqldumpコマンドを使用してプロジェクト内のmysqlデータをバックアップおよびエクスポートします。

mysqldump コマンドはじめに: データベースバックアッププログラム形式: mysqldum...

CSSの省略記号とパディングを組み合わせた場合の問題の詳細な説明

CSS によるテキストの切り捨てテキストを自動的に切り捨てるスタイル コードを実装するには、次のコー...

HTMLページ間でパラメータを渡すフロントエンド方式の詳細な説明

プロジェクトでよくある状況として、案件リストなどのリストが存在することがあります。リスト内の項目をク...