[java] Apache POI를 이용한 Word 문서 백업

일반적으로 문서 작성 중에 Word 파일을 백업하는 것은 매우 중요합니다. 예기치 않은 데이터 손실로 인해 문서를 다시 작성해야 할 수도 있기 때문입니다. 이를 방지하기 위해 Apache POI 라이브러리를 사용하여 Word 문서를 백업하는 방법을 알아보겠습니다.

Apache POI란?

Apache POI는 자바 기반 API로서, Microsoft Office 파일 형식과 상호 작용하기 위한 라이브러리입니다. 이 라이브러리는 Microsoft Word, Excel, PowerPoint 등의 파일을 생성, 수정 및 읽을 수 있는 기능을 제공합니다.

의존성 추가

먼저, Apache POI를 사용하기 위해 프로젝트에 해당 라이브러리를 추가해야 합니다. Maven을 사용한다면, pom.xml 파일에 다음 의존성을 추가합니다:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>

Gradle을 사용한다면, build.gradle 파일에 다음 의존성을 추가합니다:

implementation 'org.apache.poi:poi:4.1.2'

코드 작성

다음으로, Word 문서를 백업하는 코드를 작성해 보겠습니다. 다음 코드는 입력으로 받은 Word 파일을 백업하기 위해 “.bak” 확장자를 추가하여 새로운 파일로 저장하는 예제입니다.

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class WordDocumentBackup {

    public static void main(String[] args) {
        String filePath = "path/to/original/document.docx";
        backupWordDocument(filePath);
    }

    public static void backupWordDocument(String filePath) {
        try {
            File file = new File(filePath);
            FileInputStream fis = new FileInputStream(file);
            XWPFDocument document = new XWPFDocument(fis);

            String backupFilePath = filePath + ".bak";
            FileOutputStream fos = new FileOutputStream(backupFilePath);
            document.write(fos);

            fos.close();
            fis.close();
            document.close();

            System.out.println("Word document backed up successfully to: " + backupFilePath);
        } catch (IOException e) {
            System.out.println("Failed to backup Word document.");
            e.printStackTrace();
        }
    }
}

위의 코드에서 filePath 변수에는 백업할 Word 문서의 경로를 지정하면 됩니다. 코드 실행 시 해당 파일은 “.bak” 확장자를 가지는 새로운 파일로 저장됩니다.

결론

Apache POI를 사용하면 Word 문서를 백업하는 것이 간단하고 효율적으로 가능합니다. 이를 이용하여 데이터 손실로부터 안전하게 문서를 보호할 수 있습니다.

참고 자료