1. 개요

간단히 말해서 CSV(쉼표로 구분된 값) 파일에는 쉼표 구분 기호로 구분된 체계적인 정보가 포함되어 있습니다.

이 사용방법(예제)에서는 CSV 파일을 배열로 읽는 다양한 방법을 살펴보겠습니다.

2. java.io  의  BufferedReader

먼저 BufferedReader  에서 readLine() 을 사용하여 레코드를 한 줄씩 읽습니다 .

그런 다음 쉼표 구분 기호에 따라 줄을 토큰으로 나눕니다.

List<List<String>> records = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader("book.csv"))) {
    String line;
    while ((line = br.readLine()) != null) {
        String[] values = line.split(COMMA_DELIMITER);
        records.add(Arrays.asList(values));
    }
}

더 정교한 CSV(예: 값으로 따옴표 또는 쉼표 포함)는 이 접근 방식으로 의도한 대로 구문 분석되지 않습니다.

3. java.util  의 스캐너

다음으로 java.util.Scanner 를 사용 하여 파일 내용을 실행하고 줄을 하나씩 차례로 검색합니다.

List<List<String>> records = new ArrayList<>();
try (Scanner scanner = new Scanner(new File("book.csv"));) {
    while (scanner.hasNextLine()) {
        records.add(getRecordFromLine(scanner.nextLine()));
    }
}

그런 다음 라인을 구문 분석하고 배열에 저장합니다.

private List<String> getRecordFromLine(String line) {
    List<String> values = new ArrayList<String>();
    try (Scanner rowScanner = new Scanner(line)) {
        rowScanner.useDelimiter(COMMA_DELIMITER);
        while (rowScanner.hasNext()) {
            values.add(rowScanner.next());
        }
    }
    return values;
}

이전과 마찬가지로 더 정교한 CSV는 이 접근 방식으로 의도한 대로 구문 분석되지 않습니다.

4. 오픈CSV

OpenCSV로 더 복잡한 CSV 파일을 처리할 수 있습니다.

OpenCSV는 CSV 파일 작업을 위한 API를 제공하는 타사 라이브러리입니다.

CSVReader의 readNext () 메서드를 사용 하여 파일의 레코드를 읽습니다.

List<List<String>> records = new ArrayList<List<String>>();
try (CSVReader csvReader = new CSVReader(new FileReader("book.csv"));) {
    String[] values = null;
    while ((values = csvReader.readNext()) != null) {
        records.add(Arrays.asList(values));
    }
}

OpenCSV에 대해 더 자세히 알아보고 자세히 알아보려면 OpenCSV 사용방법(예제) 를 확인하세요 .

5. 결론

이 빠른 기사에서는 CSV 파일을 배열로 읽는 다양한 방법을 살펴보았습니다.

항상 그렇듯이 예제의 전체 소스 코드는 GitHub에서 사용할 수 있습니다 .

Generic footer banner