🎃
クエリの結果をCSV形式で出力する
概要
クエリで取得したレコードのリストを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
Discussion