just code
import com.alibaba.fastjson.JSON;
import lombok.Data;
import java.io.*;
import java.util.HashMap;
/**
* 文件解析
*
* @author lemon
* @date 2021/7/2
**/
public class ParseContent {
/**
* 读取文件地址
*/
private static final String FILE_PATH = "/Users/lemon/Document/debug.log";
/**
* 截取行起始字符(标志开始,不包含在截取内容中)
*/
private static final String SPLIT_START = "";
/**
* 截取行结束字符(标志结束,不包含在截取内容中)
*/
private static final String SPLIT_END = "";
/**
* 内容操作类型
*/
private static final HashMap<String, String> TYPE_MAP = new HashMap<>();
static {
TYPE_MAP.put("0", "新建");
TYPE_MAP.put("1", "变更");
TYPE_MAP.put("2", "撤销");
TYPE_MAP.put("3", "重传");
}
public static void main(String[] args) {
//解析文件
parseContent(FILE_PATH, SPLIT_START, SPLIT_END);
}
public static void parseContent(String filePath, String splitStart, String splitEnd) {
FileInputStream fis = null;
InputStreamReader isr = null;
BufferedReader br = null;
try {
String str;
fis = new FileInputStream(filePath);
// 从文件系统中的某个文件中获取字节
isr = new InputStreamReader(fis);
br = new BufferedReader(isr);
while ((str = br.readLine()) != null) {
//截取每行日志部分内容
int index = str.indexOf(splitStart);
int indexEnd = str.indexOf(splitEnd);
String messageStr = str.substring(index + splitStart.length(), indexEnd);
//处理后输出
TestObject testObject = JSON.parseObject(messageStr, TestObject.class);
System.out.println(TYPE_MAP.getOrDefault(testObject.type, "") + " " + testObject.getContent());
}
} catch (FileNotFoundException e) {
System.out.println("找不到指定文件");
} catch (IOException e) {
System.out.println("读取文件失败");
} finally {
try {
if (br != null) {
br.close();
}
if (isr != null) {
isr.close();
}
if (fis != null) {
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Data
private static class TestObject {
private String content;
private String type;
private String dateTime;
}
}