Java를 사용하여 CSV 파일을 구문 분석하는 방법

쉼표로 구분 된 형식으로 파일을 구문 분석하는 가장 쉬운 방법은 아파치 공유 라이브러리를 사용하는 것입니다. 라이브러리는 Excel에서 내 보낸 형식을 구문 분석 할 수 있습니다. jar 파일은 maven의 메인 저장소에서 사용할 수 있습니다.

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.4</version>
    <type>jar</type>
</dependency>

예:

이 예제는 매개 변수로 전달 된 경로에서 파일을로드합니다. 파일은 FileReader를 사용하여로드됩니다. 그런 다음 Excel 형식을 사용하여 Reader를 구문 분석하여 CSVParser를 만듭니다. 이 예는 Google 웹 마스터 도구에서 내 보낸 파일을 기반으로합니다. 첫 번째 줄에는 파일의 헤더가 들어 있으며 주 루프에서 별도로 처리해야합니다. 헤더가 처리되면 모든 레코드를 처리 할 수 있습니다. 여기, 우리는 그것들을 출력에 씁니다.

import org.apache.commons.csv.CSVRecord;
import org.apache.commons.csv.CSVParser;

import java.io.FileReader;
import java.io.Reader;


import org.apache.commons.csv.CSVFormat;

public class ParseCSVFile {

    public void processFile(String file){
	
        try {
            Reader in = new FileReader(file);

            CSVParser parser = CSVFormat.EXCEL.parse(in);

            // Loop on all the records of the file
            recordsLoop:for (CSVRecord record : parser) {
        	// Process the headers in the first line
        	if( record.getRecordNumber() == 1 ){
        	    
        	    System.out.println( record.get( 0 ) + "\t" + record.get( 1 ) + "\t" + record.get( 2 ) + "\t" + record.get( 3 ) );
        	    
        	    continue recordsLoop;
        	}

        	// Display the current record
        	System.out.println( record.get( 0 ) + "\t" + record.get( 1 ) + "\t" + record.get( 2 ) + "\t" + record.get( 3 ) );

        	// We only display the first 2 records
        	if( record.getRecordNumber() == 3 )
        	    break;
            }
        } catch( Exception e ){
            e.printStackTrace();
        }
    }
    
    public static void main(String[] argv){
	ParseCSVFile csvFile = new ParseCSVFile();
	
	csvFile.processFile( "SearchAnalytics.csv" );
    }
}

출력은 다음과 같습니다.

Pages	Clicks	Impressions	CTR
http://oliviertech.com/java/generate-SHA1-hash-from-a-String/	436	8445	5.16%
http://oliviertech.com/java/generate-SHA256--SHA512-hash-from-a-String/	380	5826	6.52%

CSV 형식의 파일은 편리하고 읽기 쉽습니다. 가장 큰 단점은 CSV로 내보내는 도구가 다시 가져 오지 않아 형식이 오류가 발생하기 쉽다는 점입니다. xml을 사용하는 것이 바람직합니다.

참고 문헌 :

Apache Commons CSV