写在之前
加载CSV数据(Listener模式)
原有语法文件
grammar CSV;
file
: hdr row+
;
hdr
: row
;
row
: field (',' field)* '\r'? '\n'
;
field
: TEXT
| STRING
|
;
TEXT
: ~[,"\n\r]+
;
STRING
: '"' ('""'|~'"')* '"'
;
自定义Listener
public static class Loader extends CSVBaseListener {
public static final String EMPTY="";
List<Map<String,String>> rows=new ArrayList<Map<String,String>>();
List<String> header;
List<String> currentRowFieldValues;
public void exitHdr(CSVParser.HdrContext ctx) {
header=new ArrayList<String>();
header.addAll(currentRowFieldValues);
}
public void enterRow(CSVParser.RowContext ctx){
currentRowFieldValues=