Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Java | opencsvでCSVファイルを操作する

概要

opencsvでCSVファイルを操作する

詳細

以下の手順でインストールする
・下記URLからtarボールを取得
http://sourceforge.jp/projects/sfnet_opencsv/

mavenでビルドする
・出来上がったjarをプロジェクトのビルドパスに設定する

下記に入出力のサンプルを示します

サンプルコード

package opencsv;

import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.util.Arrays;
import java.util.List;

import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsv.CSVWriter;

public class SampleOpenCSV {
  private static final String UTF_8 = "UTF-8";

  public static void main(String[] args) throws IOException {

    readCsv();

    writeCsv();
  }

  private static void readCsv() throws UnsupportedEncodingException, IOException {
    String csv = "abc,def\nhij,klm";
    byte[] buf = csv.getBytes(UTF_8);

    InputStream byteIn = new ByteArrayInputStream(buf);
    InputStreamReader in = new InputStreamReader(byteIn, UTF_8);
    CSVReader csvReader = new CSVReader(in);

    List<String[]> lines = csvReader.readAll();
    for (String[] strings : lines) {
      for (String string : strings) {
        System.out.print(string + ",");
      }
      System.out.println("");
    }
    csvReader.close();
  }

  private static void writeCsv() throws UnsupportedEncodingException, IOException {
    List<String[]> csv = Arrays.asList(new String[] {"1", "2"}, new String[] {"3", "4"});

    FileOutputStream out = new FileOutputStream("opencsv.csv");
    Writer writer = new OutputStreamWriter(out);
    CSVWriter csvWriter = new CSVWriter(writer);
    csvWriter.writeAll(csv);

    csvWriter.close();
    writer.close();
    out.close();
  }
}

出力

abc,def,
hij,klm,

出力ファイル

$cat opencsv.csv
"1","2"
"3","4"