public class readData {
private static BufferedReader br;
public static void main(String[] args) throws IOException {
String file = "C:\\test\\aacc\\WLZXHZDInterfaceProcess10.jtl";
JSONArray jsonArray = new JSONArray();
String[] regex = { "lb=\"(.+?)\"", "rm=\"(.+?)\"", "rc=\"(.+?)\"", "ts=\"(.+?)\"", "lt=\"(.+?)\"" };
// ts:开始时间 lt:耗时 lb:用例名称 rc:pass/fail,200pass,非200fail rm:执行情况
br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(file)), "UTF-8"));
String s = null;
while ((s = br.readLine()) != null) {
JSONObject jsonObject = new JSONObject();
for (int i = 0; i < regex.length; i++) {
Pattern pattern = Pattern.compile(regex[i]);
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
String lb = (String) regex[i].subSequence(0, regex[i].indexOf("="));
if (lb.equals("ts")) {
jsonObject.put(lb, timeStampToTime(matcher.group(1)));
} else {
jsonObject.put(lb, matcher.group(1));
}
}
}
if (!jsonObject.isEmpty()) {
jsonArray.add(jsonObject);
}
}
System.out.println(jsonArray.toString());
}
// 读取文件输出成string
public static String txt2String(String file) {
StringBuilder result = new StringBuilder();
try {
// 构造一个BufferedReader类来读取文件
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(file)), "UTF-8"));
String s = null;
while ((s = br.readLine()) != null) {// 使用readLine方法,一次读一行
result.append(System.lineSeparator() + s);
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return result.toString();
}
// 将时间戳转换为日期格式
public static String timeStampToTime(String s) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long timeStamp = new Long(s);
Date date = new Date(timeStamp);
String time = simpleDateFormat.format(date);
return time;
}
}