[java] Apache Tika 와 파일 시스템 접근

Apache Tika는 Java 기반의 오픈 소스 라이브러리로, 다양한 파일 형식의 내용을 추출하고 분석하는 기능을 제공합니다. 파일 시스템에 저장된 문서 파일에서 텍스트, 메타데이터, 그림 등을 추출하여 활용할 수 있습니다.

Apache Tika 설치

먼저, Apache Tika를 설치해야합니다. 아래와 같은 Maven 의존성을 추가하여 설치할 수 있습니다.

<dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-core</artifactId>
    <version>1.26</version>
</dependency>

파일 시스템에서 내용 추출하기

다음은 Apache Tika를 사용하여 파일 시스템에 저장된 문서 파일에서 내용을 추출하는 예제 코드입니다.

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.sax.BodyContentHandler;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class FileContentExtractor {
    public static void main(String[] args) {
        // 파일 경로 설정
        String filePath = "/path/to/file";

        File file = new File(filePath);

        try (InputStream inputStream = new FileInputStream(file)) {
            // Tika Parser 초기화
            AutoDetectParser parser = new AutoDetectParser();
            BodyContentHandler handler = new BodyContentHandler();
            Metadata metadata = new Metadata();
            ParseContext parseContext = new ParseContext();

            // 파일 내용 추출
            parser.parse(inputStream, handler, metadata, parseContext);

            // 추출된 내용 출력
            System.out.println("File Content:");
            System.out.println(handler.toString());

            // 메타데이터 출력
            System.out.println("Metadata:");
            for (String name : metadata.names()) {
                System.out.println(name + ": " + metadata.get(name));
            }
        } catch (IOException | TikaException e) {
            e.printStackTrace();
        }
    }
}

위의 예제 코드는 지정된 파일 경로에서 파일을 읽고, Tika Parser를 사용하여 파일 내용을 추출합니다. 추출된 내용은 BodyContentHandler를 통해 얻을 수 있으며, 메타데이터는 Metadata 객체를 통해 얻을 수 있습니다.

참고 자료