Apache Commons CSV – 行単位にカンマ区切りで分割するには


行単位にカンマ区切りで分割するには
CSVUtilsクラスのparseLineメソッドを使用します。

package net.tk_factory.sample.apache.commons.csv;

import java.io.IOException;

import net.tk_factory.sample.AbstractSample;

import org.apache.commons.csv.CSVUtils;
import org.apache.log4j.Logger;

/**
 * Apache Commons CSVを使用したサンプルプログラムです。<br/>
 * <br/>
 * <b>内容</b>
 * <ol type="1">
 * <li>CSVファイルの1行をカンマで分割します。</li>
 * </ol>
 * @author Takafumi Kondo (TK Factory)
 */
public class SampleParseCSVLine extends AbstractSample
{
    /** クラス名 */
    private static final String CLASS_NAME =
        SampleParseCSVLine.class.getSimpleName();

    /** ロガー */
    private static final Logger LOGGER =
        Logger.getLogger(SampleParseCSVLine.class.getName());

    /**
     * SampleParseCSVLineオブジェクトを構築すると、
     * UnsupportedOperationExceptionがスローされます。<br/>
     */
    protected SampleParseCSVLine()
    {
        throw new UnsupportedOperationException();
    }

    /**
     * mainメソッドです。<br/>
     *
     * @param args 引数
     */
    public static void main(String[] args)
    {
        LOGGER.info("[START]" + CLASS_NAME);

        try
        {
            StringBuffer line = new StringBuffer();
            // 通常のカラム[abc]
            line.append("abc,");
            // 日本語を含むカラム[あいうえお]
            line.append("\"あいうえお\",");
            // カンマを含むカラム[a,b,c]
            line.append("\"a,b,c\",");
            // ダブルクォーテーションを含むカラム[a"b"c]
            line.append("\"a\"\"b\"\"c\",");
            // 空のカラム[]
            line.append("");

            // カンマ区切りで分割する
            String[] parsedLine = CSVUtils.parseLine(line.toString());
            for (int i = 0; i < parsedLine.length; i++)
            {
                LOGGER.debug("value[" + i + "]=" + parsedLine[i]);
            }
        }
        catch (IOException ex)
        {
            LOGGER.error(getStackTrace(ex));
        }
        finally
        {
            LOGGER.info("[E N D]" + CLASS_NAME);
        }
    }
}

実行結果は以下の通りです。

2009/11/22 [ INFO]:[START]SampleParseCSVLine
2009/11/22 [DEBUG]:value[0]=abc
2009/11/22 [DEBUG]:value[1]=あいうえお
2009/11/22 [DEBUG]:value[2]=a,b,c
2009/11/22 [DEBUG]:value[3]=a"b"c
2009/11/22 [DEBUG]:value[4]=
2009/11/22 [ INFO]:[E N D]SampleParseCSVLine

関連記事

  1. コメント 0

  1. トラックバック 0

return top