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 のインストールとパスワードのリセットの問題

推薦する

CSS3+ベジェ曲線でスケーラブルな入力検索ボックス効果を実現

では、早速レンダリングを見てみましょう。 コア コードはtransition: cubic-bezi...

MySQL 無料インストール版 (zip) のインストールと設定の詳細なチュートリアル

この記事では、MySQL無料インストール版(zip)のインストールと設定のチュートリアルを参考までに...

WeChatアプレットはウォーターフォールフローのページングスクロール読み込みを実装します

この記事では、WeChatアプレットのウォーターフォールフローページングスクロールロードを実装するた...

Mysql SQL ステートメントのコメント

MySQL SQL ステートメントにコメントを追加できます。MySQL SQL ステートメントのコメ...

MySQLのロングトランザクションに関する深い理解

序文:この記事では主にMySQLのロングトランザクションに関する内容を紹介します。例えば、トランザク...

要素の円弧モーションを実現する CSS3 サンプルコード

CSS を使用して要素の円弧の動きを制御する方法CSS3 の新しい属性 transfrom トランジ...

Linux で Sudo を使用して権限を委譲する

sudo 権限委譲の概要su スイッチ ID: su –l ユーザー名 –c 'コマンド&#...

Dockerは1行のコマンドでFTPサービス構築の実装を完了します

1行のコマンド docker run -d \ -v /share:/home/vsftpd \ -...

MySQLテクノロジーにおけるInnoDBロックの詳細な説明

目次序文1. ロックとは何ですか? 2. InnoDBストレージエンジンのロック2.1 ロックの種類...

グリッドはページのレイアウトプランです

<br /> 英語原文: http://desktoppub.about.com/od/...

チェックボックスの選択またはキャンセルを実装するJavaScript

この記事では、すべてのチェックボックスを選択または解除するためのJavaScriptの具体的なコード...

WeChatアプレットが弾丸画面を送信するビデオプレーヤーを実装

この記事では、WeChatアプレットでビデオプレーヤーの集中砲火を実装するための具体的なコードを参考...

dockerでデプロイされたjenkinsでgitプログラムを実行する際の問題について

1. まず、gitを関連付けるときにエラーメッセージが報告されます: エラー: ビルドするリビジョン...

MySQL は、現在のデータ テーブル内のすべての時間に対して指定された時間間隔を増加または減少させます (推奨)

DATE_ADD() 関数は、指定された時間間隔を日付に追加します。現在のテーブル内のすべてのデー...

判定条件を使用してCSSファイルをインポートする

解決策 1: HEAD に次のコードを挿入するなど、HTML ドキュメントで条件付きインポートを使用...