Javaを使用してCSVファイルを解析する方法

Comma Serapated Formatでファイルを解析する最も簡単な方法は、Apacheコモンズライブラリを使用することです。 ライブラリは、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