[java]Super CSV による File Write
では続いてファイル書き込みもやってみましょう。
ファイル名:WritingMaps.java
package write; import java.io.FileWriter; import java.util.HashMap; import org.supercsv.io.CsvMapWriter; import org.supercsv.io.ICsvMapWriter; import org.supercsv.prefs.CsvPreference; /** * SuperCSVによるCSVファイル書き込み * @author kazuki.kido */ class WritingMaps { public static void main(String[] args) throws Exception { ICsvMapWriter writer = new CsvMapWriter(new FileWriter("./data/boo.csv"), CsvPreference.EXCEL_PREFERENCE); try { final String[] header = new String[] { "name", "city", "zip" }; // 1行目データを作成 final HashMap<String, ? super Object> data1 = new HashMap<String, Object>(); data1.put(header[0], "Karl"); data1.put(header[1], "Tent city"); data1.put(header[2], 5565); // 2行目データを作成 final HashMap<String, ? super Object> data2 = new HashMap<String, Object>(); data2.put(header[0], "Banjo"); data2.put(header[1], "River side"); data2.put(header[2], 5551); // ファイルへ出力 writer.writeHeader(header); writer.write(data1, header); writer.write(data2, header); } finally { writer.close(); } } }
こちらはBeanではなく、Mapを用いています。当然、ICsvBeanWriter, CsvBeanWriterとUserBeanを使えば、Beanによる書き込みも可能です。
[java]CsvBeanReader, CsvBeanWriter, ParseDateを併用するには - Undead mode 忘備録
ファイルへの出力結果は次の通り。
ファイル名:boo.csv
name,city,zip Karl,Tent city,5565 Banjo,River side,5551
よさげです。