1.准备一个文件230531
内容为
1
05-16 18:00:58
__source__: 10.142.3.33
__topic__: xx
_requestdate: 2023-03-16 18:00:57
_requestip: 10.142.3.34
content: {"requestTime":1678960857189,"strJson":{"strJson":[{"acctId":"xx","channelCode":"GEN","funcCode":"GEN_0202","payload":{"eInvoiceList":[{"eInvoiceId":"xx"}],"enterId":"xx","usercode":"xx","username":"xx仁"},"promotCode":"","promotType":"","serialNo":"xx","srvCode":"xx","userName":"xx家"}],"sign":"UmFiYml0TVHphY3nva4KUkFCQklUX0hPU1QgPSAxNzIuMTYuMTIuMjEzClJBQkJJVF9QT1JUID0gNTY3MgpSQUJCSVRfVVNFUk5BTUUgPSBkenBqClJBQkJJVF9QQVNTV09SRCA9IGR6cGo=","channelCode":"GEN"},"sign":"xx","appKey":"xx"}response: [response]={"code":"00","msg":"成功","data":"","datas":"{\"rtnMsg\":\"\",\"retJson\":\"{\\\"result\\\":null,\\\"success\\\":false,\\\"resultCode\\\":\\\"705\\\",\\\"rtnMsg\\\":\\\"\\\",\\\"resultMsg\\\":null,\\\"rtnCode\\\":\\\"0\\\"}\",\"rtnCode\":\"0\"}","requestId":"13a2d4f86dff44ef4f1e07a534b6a0b3","dataCount":... 展开
datetime: 2023-03-16 18:00:57
level: info
method: get
project: xx
security: xx
version: 1.0.0
2.读取文件并处理
@Test public void testReadFile() throws Exception { String fileName = "230531"; String log = getData("D:\\gw\\" + fileName + "_log.txt").toString(); File file = new File("D:\\dm\\" + fileName + ".txt"); file.createNewFile(); FileWriter fw = new FileWriter(file); fw.write(log); fw.flush(); fw.close(); }
3.提取信息并处理(2中的getData方法)
private static StringBuilder getData(String fileName) throws IOException { File file = new File(fileName); InputStreamReader read = new InputStreamReader( new FileInputStream(file), StandardCharsets.UTF_8); BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; StringBuilder stringBuilder = new StringBuilder(); while ((lineTxt = bufferedReader.readLine()) != null) { if (lineTxt.contains("content")) { JSONObject object = (JSONObject) JSON.parse(lineTxt.substring(8, lineTxt.indexOf("response:"))); JSONObject strJson = (JSONObject) object.get("strJson"); JSONArray strJsonArray = (JSONArray) strJson.get("strJson"); JSONObject strJson2 = (JSONObject) strJsonArray.get(0); JSONObject payload = (JSONObject) strJson2.get("payload"); String enterId = (String) payload.get("enterId"); stringBuilder.append("INSERT INTO log_path (id, payload,resend_status) VALUES ('" + enterId + "','" + payload.toJSONString() + "','0');").append("\r\n"); } } read.close(); return stringBuilder; }