Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 CSV 파일 데이터를 읽는 방법 – BufferedReader 활용 가이드


CSV 파일이란?

CSV(Comma Separated Values, 쉼표로 구분된 값)는 데이터를 저장하고 교환하기 위해 가장 널리 사용되는 텍스트 파일 형식 중 하나입니다. CSV 파일에서는 각 줄(line)에 여러 개의 값이 쉼표(,)로 구분되어 저장되며, 파일 확장자는 .csv입니다.

Java에서 CSV 파일을 읽는 기본 원리

Java에서는 BufferedReader 클래스의 readLine() 메서드를 사용하여 CSV 파일을 한 줄씩 읽을 수 있습니다. 그다음 각 줄을 쉼표 문자를 기준으로 분할(split)하면 해당 줄의 데이터가 배열 형태로 얻어집니다. 이렇게 만든 배열은 반복문으로 순회하거나 인덱스를 사용해 원하는 값에 손쉽게 접근할 수 있습니다.

처리 흐름 요약

  1. 파일 열기: File 객체와 FileReader를 통해 대상 CSV 파일에 연결합니다.
  2. 버퍼링: BufferedReader로 감싸면 내부 버퍼를 활용해 효율적으로 읽을 수 있습니다.
  3. 줄 단위 읽기: readLine()이 null을 반환할 때까지(파일의 끝까지) 반복합니다.
  4. 데이터 분리: split(",") 메서드로 각 줄을 쉼표 기준으로 나누어 배열에 저장합니다.
  5. 출력 및 종료: 배열을 순회하며 값을 출력한 후, close()로 리소스를 해제합니다.

예제 코드

import java.io.*;
public class CSVReaderTest {
    public static final String delimiter = ",";
    public static void read(String csvFile) {
        try {
            File file = new File(csvFile);
            FileReader fr = new FileReader(file);
            BufferedReader br = new BufferedReader(fr);
            String line = "";
            String[] tempArr;
            while((line = br.readLine()) != null) {
                tempArr = line.split(delimiter);
                for(String tempStr : tempArr) {
                    System.out.print(tempStr + " ");
                }
                System.out.println();
            }
            br.close();
        } catch(IOException ioe) {
            ioe.printStackTrace();
        }
    }
    public static void main(String[] args) {
        // 읽을 CSV 파일 경로
        String csvFile = "C:/Temp/Technology.csv";
        CSVReaderTest.read(csvFile);
    }
}

실행 결과

"JAVA" "PYTHON" "JAVASCRIPT" "SELENIUM" "SCALA"

실무에서 알아두면 좋은 팁

  • try-with-resources 활용: Java 7 이상에서는 try-with-resources 구문을 사용하면 스트림이 자동으로 닫히므로 리소스 누수를 예방할 수 있습니다.
  • 인코딩 지정: 한글 데이터가 포함된 CSV라면 InputStreamReader와 함께 UTF-8 등 명시적인 문자 인코딩을 지정하는 것이 안전합니다.
  • 복잡한 CSV 처리: 값 안에 쉼표가 포함되거나 따옴표 처리가 필요한 경우에는 Apache Commons CSV 같은 전용 라이브러리를 사용하는 것이 좋습니다.