「Java」try-with-resources文でCSVファイルに書き込む
環境
Java 1.8
Eclipse 2019
Windows10 64bit
ファイル名:C:\study\test007.csv
書式
1.public static String join(CharSequence delimiter,Iterable<? extends CharSequence> elements)
指定されたdelimiterのコピーを使用して結合されたCharSequence要素のコピーからなる新しいStringを返します。 Stringクラスは文字列を表します。Javaプログラム内の"abc"などのリテラル文字列はすべて、このクラスのインスタンスとして実行されます。
2.public FileWriter(File file) throws IOException
Fileオブジェクトを指定してFileWriterオブジェクトを構築します。
3.public void write(String str) throws IOException
文字列を書き込みます。
使用例
package com.arkgame.testinfo; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class CsvWriteDemo { // ファイルパスの定数 private static final String FILEPATH = "C:\\study\\test007.csv"; // カンマ区切りの定数 private static final String STRSPLIT = ","; // エラーメッセージ private static final String ERRMSG = "指定csvファイルが存在しません"; // 改行符号 private static final String BRMK = "\r\n"; public static void main(String[] args) { File file = new File(FILEPATH); // ファイルの存在確認 if (!file.exists()) { System.out.println(ERRMSG); return; } List<String> userList = new ArrayList<>(); try (FileWriter fileWriter = new FileWriter(file)) { System.out.println("第1行目の内容を書き込み"); userList.add("10001"); userList.add("山田 太郎"); userList.add("東京"); //引数1はカンマ区切りを指定してリストの要素を連携する String lineA = String.join(STRSPLIT, userList); fileWriter.write(lineA); fileWriter.write(BRMK); System.out.println("リストの内容がクリアされます"); userList.clear(); System.out.println("第2行目の内容を書き込み"); userList.add("20002"); userList.add("山城 次郎"); userList.add("大阪"); //引数1はカンマ区切りを指定してリストの要素を連携する String lineB = String.join(STRSPLIT, userList); fileWriter.write(lineB); fileWriter.write(BRMK); } catch (IOException es) { System.out.println(es); } finally { System.out.println("CSVファイル書き込むが終了しました。"); } } }
結果
1.「C:\study\test007.csv」に以下の内容を出力します。
10001,山田 太郎,東京 20002,山城 次郎,大阪
2.コンソールに以下の内容を出力します。
第1行目の内容を書き込み リストの内容がクリアされます 第2行目の内容を書き込み CSVファイル書き込むが終了しました。