0
0

Javaで指定のファイルがテキストファイルかどうか判定する

Posted at

Javaを用いて指定のファイルがテキストファイルかどうかを判定する方法を調べたので備忘録としてまとめます。

Apatch Tikaを用いてファイルのMIME TYPEを判定してもらう方法が手軽にできてよかったです。

Mavenのライブラリをインポートします。

pom.xml
<dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-core</artifactId>
    <version>2.9.2</version>
</dependency>

Apache Tikaを使ってファイルがテキストファイルかどうかを判定するコード例です。

import org.apache.tika.Tika;
import java.io.File;
import java.io.IOException;

public class FileTypeChecker {

    public static boolean isTextFile(File file) {
        Tika tika = new Tika();
        try {
            String mimeType = tika.detect(file);
            System.out.println("Detected MIME type: " + mimeType);
            return mimeType.startsWith("text/");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;
    }

    public static void main(String[] args) {
        File file = new File("sample.txt");
        if (isTextFile(file)) {
            System.out.println(file.getName() + " is a text file.");
        } else {
            System.out.println(file.getName() + " is not a text file.");
        }
    }
}

コード例の概要

  1. Tika tika = new Tika(); を使用してTikaのインスタンスを作成します。
  2. tika.detect(file) メソッドを使って、ファイルのMIMEタイプを検出します。たとえば、テキストファイルであれば text/plain などが返されます。
    jsonファイルは application/json となるので適宜判定処理を修正しましょう。
  3. MIMEタイプが「text/」で始まるかどうかを確認
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0