Quantcast
Channel: プログラム の個人的なメモ
Viewing all articles
Browse latest Browse all 860

【Java】CSVファイルを扱う ~ ライブラリ「OpenCSV」編 ~

$
0
0

■ CSVライブラリ

http://honeplus.blog50.fc2.com/blog-entry-69.html
で結構あるが、結局、今でもメンテしているものって条件であれば、
結構、絞れる。
後は、プロジェクトの仕様/JDKバージョンに従ったり、使ってみて判断すればいいかと。
 => ここでは、その中で、「OpenCSV」を扱う。

OpenCSV

http://opencsv.sourceforge.net/

Apache Commons CSV

http://commons.apache.org/proper/commons-csv/index.html

OrangeSignal CSV

http://orangesignal.github.io/orangesignal-csv/index.html

■ 導入

 * Gradle を使う

build.gradle

dependencies {
    // opencsv
    compile group: 'com.opencsv', name: 'opencsv', version: '4.1'
}

■ サンプル

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import com.opencsv.CSVWriter;

public class Demo {

  public static void main(String[] args) {
    try {
      // CSV出力
      createCsv("sample.csv", new String[] { "Item1", "Item2", "Item3" },
          Arrays.asList(new String[] { "1-1", "1-2", "1-3" }, new String[] { "2-1", "2-2", "2-3" }));
    } catch (Exception ex) {
      System.err.println(ex.getMessage());
    }
    System.out.println("Done!");
  }

  private static void createCsv(String csvFilePath, String[] csvHeaderItems, List<String[]> csvBodies)
      throws FileNotFoundException, IOException {
    List<String[]> csvContents = new ArrayList<>();
    if (csvHeaderItems != null && csvHeaderItems.length > 0) {
      csvContents = new ArrayList<>();
      csvContents.add(csvHeaderItems);
      csvContents.addAll(csvBodies);
    } else {
      csvContents = csvBodies;
    }

    // CSV出力
    try (CSVWriter csvWriter = new CSVWriter(new OutputStreamWriter(new FileOutputStream(csvFilePath), "Shift_JIS"));) {
      csvWriter.writeAll(csvContents);
    }
  }
}

出力結果

sample.csv
"Item1","Item2","Item3"
"1-1","1-2","1-3"
"2-1","2-2","2-3"


関連記事

【Java】CSVファイルを扱う ~ 簡易版 ~

https://blogs.yahoo.co.jp/dk521123/33910085.html

Viewing all articles
Browse latest Browse all 860

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>