「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ファイル書き込むが終了しました。