场景
一些服务需要记录一些持久化的信息(没有数据库,redis,elasticsearch 可用)
我们就项目启动过程创建一个json 文件去记录工作内容的进程(json 可视化与改动非常方便)
实现效果
代码
application.yml
clears:
record-file: ./config/es-record.json
代码层
@Value("${clears.record-file}")
private String recordPath;
public JSONObject cjrReadJson() {
createFile(recordPath);
try (FileInputStream fis = new FileInputStream(recordPath)) {
String jsonContent = new String(FileCopyUtils.copyToByteArray(fis), StandardCharsets.UTF_8);
if (!StringUtils.hasText(jsonContent)) {
return new JSONObject();
}
return JSON.parseObject(jsonContent);
} catch (Exception e) {
e.printStackTrace();
return new JSONObject();
}
}
public void cjrWriteJson(JSONObject j) {
try (FileOutputStream fos = new FileOutputStream(recordPath)) {
//SerializerFeature.PrettyFormat json 格式换行,增加可读性
byte[] bytes =
j.toString(SerializerFeature.PrettyFormat).getBytes(StandardCharsets.UTF_8);
// 将字节数据写入文件
FileCopyUtils.copy(bytes, fos);
} catch (Exception e) {
e.printStackTrace();
}
}
private void createFile(String path) {
try {
File file = new File(path);
if (!file.exists()) {
file.createNewFile();
}
} catch (IOException e) {
e.printStackTrace();
}
}