[java] 파일 라인 단위로 읽기 및 쓰기를 위한 Apache Commons IO 사용법

Apache Commons IO는 Java에서 파일 및 스트림 처리를 위한 유용한 기능들을 제공합니다. 이 중에서 파일을 라인 단위로 읽고 쓰는 기능을 사용하는 방법에 대해 알아보겠습니다.

Apache Commons IO 라이브러리 추가하기

먼저, Apache Commons IO 라이브러리를 프로젝트에 추가해야 합니다. Gradle을 사용하는 경우, build.gradle 파일에 다음 의존성을 추가합니다:

dependencies {
    implementation 'org.apache.commons:commons-io:2.8.0'
}

Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.8.0</version>
</dependency>

의존성을 추가한 후에는 라이브러리의 기능을 사용할 준비가 끝났습니다.

파일 라인 단위로 읽기

아래 예제는 data.txt 파일을 라인 단위로 읽어 화면에 출력하는 예제입니다:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.List;

public class ReadFileLineByLineExample {
    public static void main(String[] args) {
        // 파일 경로 설정
        File file = new File("data.txt");

        try {
            // 파일을 라인 단위로 읽기
            List<String> lines = FileUtils.readLines(file, "UTF-8");

            // 각 라인 출력하기
            for(String line : lines) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제에서는 FileUtils.readLines() 메서드를 사용하여 파일을 라인 단위로 읽어와서 List<String> 형태로 반환합니다. 이 후에는 반복문을 사용하여 각 라인을 출력하였습니다.

파일 라인 단위로 쓰기

아래 예제는 사용자의 입력을 받아 data.txt 파일에 한 줄씩 추가하는 예제입니다:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class WriteFileLineByLineExample {
    public static void main(String[] args) {
        // 파일 경로 설정
        File file = new File("data.txt");

        try {
            // 사용자 입력 받기
            Scanner scanner = new Scanner(System.in);
            System.out.println("내용을 입력하세요:");
            String content = scanner.nextLine();

            // 파일에 내용 쓰기
            FileUtils.writeStringToFile(file, content + "\n", "UTF-8", true);

            System.out.println("파일에 내용이 추가되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 예제에서는 FileUtils.writeStringToFile() 메서드를 사용하여 사용자의 입력 값을 data.txt 파일에 한 줄씩 추가합니다. true를 전달하여 기존 파일에 내용을 추가합니다.

마무리

Apache Commons IO를 사용하면 파일을 라인 단위로 읽고 쓰는 작업을 간편하게 처리할 수 있습니다. 위 예제 코드를 통해 Apache Commons IO를 사용한 파일 처리 방법을 익힐 수 있습니다.

더 자세한 내용은 Apache Commons IO 공식 문서를 참조하시기 바랍니다.