🎃

クエリの結果をCSV形式で出力する

2022/03/31に公開

概要

クエリで取得したレコードのリストをCSV形式で出力するメソッド

ソースコード

test.java
/**
* データベース状態をCSV形式で出力
* 
* @param tableNames テーブル名一覧
*/
public void outputCsv(String[] header, List<Map<String, Object>> recordList, String fileName) {

    // 出力ファイルパス
    String filePath = "c:/test/" + fileName + ".csv";
    File file = new File(filePath);
    try (PrintWriter writer = new PrintWriter(file)) {
        // ヘッダ出力
        writer.println(Arrays.stream(header).collect(Collectors.joining(",")));
        // データ出力
        for (Map<String, Object> item : recordList) {
	    writer.println(
		    Arrays.stream(header).map(m -> Optional.ofNullable(String.valueOf(item.get(m))).orElse(""))
			.collect(Collectors.joining(",")));
        }

        // 保存
        writer.flush();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}

git

https://gitlab.com/nk19940709nk/nakaiproject/-/blob/main/JunitSample1/src/test/java/com/example/demo/TestCommon.java

Discussion