change
-------------------------------------------------
checkIfDirExists(XXX_DIR);
private void checkIfDirExists(String dir) {
File f = new File(dir);
if (!f.exists()) {
throw new RuntimeException("ディレクトリが存在しません:" + dir);
}
}
if (list001.isEmpty()) {
System.out.println("[XXX]XXX001データがありませんでした");
} else {
String dir = String.join(File.separator, fileExportProperty.getIryoDir(), "TEST_DATA", yyyyMMddhhmmss);
writeIbsTr001Csv(list001, dir);
}
private void writeIbsTr001Csv(List<IbsTr001> list, String dir) throws Exception {
mkdirs(dir);
File file = new File(dir, "IbsTr001.csv");
try {
writeCsv(file, list, IbsTr001.FIELDS);
System.out.println("[XXX]XXX001作成に成功しました");
} catch (Exception e) {
System.out.println("異常終了[XXX]XXX001作成に失敗しました");
throw e;
}
}
//CSVファイル出力
private int writeCsv(File file, List<?> list, String[] fields) throws IOException {
try (PrintWriter pw = getWriter(file)) {
pw.println(String.join(",", getHeader(fields)));
for (Object row : list) {
pw.println(String.join(",", getValues(fields, row)));
}
}
return list.size();
}
//ライター取得
private PrintWriter getWriter(File file) throws IOException {
FileOutputStream fos = new FileOutputStream(file);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos, "UTF-8"));
PrintWriter pw = new PrintWriter(bw);
return pw;
}
//ヘッダ行を取得する
private String[] getHeader(String[] fields) {
return Arrays.stream(fields).map(String::toUpperCase).toArray(String[]::new);
}
//指定フィールド値を取得する
private String[] getValues(String[] fields, Object obj) {
Class<?> clazz = obj.getClass();
List<String> values = new ArrayList<>();
for (String field : fields) {
try {
Field f = clazz.getDeclaredField(field.toLowerCase());
f.setAccessible(true);
values.add(Objects.toString(f.get(obj), ""));
} catch (Exception e) {
e.printStackTrace();
}
}
return values.toArray(new String[values.size()]);
}
private void onFailure(Exception e) {
e.printStackTrace();
deleteFiles(new File(fileExportProperty.getIryoDir()));
deleteFiles(new File(fileExportProperty.getKensinDir()));
}
private void mkdirs(String dir) {
File file = new File(dir);
if (!file.exists())
file.mkdirs();
}
private void deleteFiles(File dir) {
for (File file : dir.listFiles()) {
if (file.isDirectory()) {
deleteFiles(file);
}
file.delete();
}
}
-------------------------------------------------