<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.10</version>
</dependency>
读取日志,将有用信息存入excel
public static void main(String[] args){
String filePath = "C:\\tempJar\\runtime.log";
String targetFilePath = "C:\\tempJar\\tadiao.xls";
readTxtFile(filePath, targetFilePath, 1, 1000);
}
public static void readTxtFile(String filePath, String targetFilePath, Integer lineBegin, Integer lineMax){
try {
File fileA = new File(targetFilePath);
String encoding="UTF-8";
File file=new File(filePath);
if(file.isFile() && file.exists()){ //判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file),encoding);//考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
int count = lineBegin;
Workbook wb = Workbook.getWorkbook(fileA); // 获得原始文档
WritableWorkbook workbookA = Workbook.createWorkbook(fileA, wb);
WritableSheet sheetA = workbookA.getSheet(0);
Label label = null;
while((lineTxt = bufferedReader.readLine()) != null){
if(!lineTxt.contains("sendLog2Kafka info")){
continue;
}
if(!lineTxt.contains("cu1xfw6x4nefwvG1")){
continue;
}
System.out.println(lineTxt);
String splitStr = lineTxt.substring(188);
System.out.println(splitStr);
JSONObject jSONObject = null;
try {
jSONObject = JSONObject.parseObject(splitStr);
}catch(Exception e){
continue;
}
List<String> columnList = new ArrayList<>();
columnList.add("data_type");
columnList.add("device_key");
columnList.add("device_name");
columnList.add("device_position");
columnList.add("device_project");
columnList.add("forward_info");
columnList.add("org_id");
columnList.add("product_key");
columnList.add("request_id");
columnList.add("request_time");
int index = 0;
for(String column:columnList){
String dataTypeValue = (String)jSONObject.get(column);
label = new Label(index,count,dataTypeValue);
sheetA.addCell(label);
index ++;
}
if(count >= lineMax){
break;
}
count ++;
}
workbookA.write(); //写入数据
workbookA.close();
read.close();
}else{
System.out.println("找不到指定的文件");
}
} catch (Exception e) {
System.out.println("读取文件内容出错");
}
}