通过适配器模式将数据格式化写入文件
如题,具体代码实现如下:
public interface IToRowStringAdapter {
String toRowString();
}
public String writeFile(String filePath, String fileName, List<? extends IToRowStringAdapter> detailList,
String charset) throws Exception{
// 若为空,则取用户根目录代替
if (StringUtils.isBlank(filePath)) {
filePath = System.getProperty("user.home");
}
// 判断文件夹存不存在,不存在则创建
File file = new File(filePath);
if (!file.exists() && !file.isDirectory()) {
file.mkdirs();
}
// 将文件新建在对应的目录下
File dataFile = new File(filePath + File.separatorChar + fileName);
try (BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dataFile), charset))) {
// 文件数据不为空,换行循环写入文件
if (detailList != null && !detailList.isEmpty()) {
for (IToRowStringAdapter detail : detailList) {
bw.write(detail.toRowString());
}
}
logger.info("文件写入成功");
} catch (Exception e) {
logger.error("文件写入异常", e);
throw new Exception("文件写入异常");
}
return filePath + File.separatorChar + fileName;
}