java读取文件提取信息并输出新文件

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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值