CsvUtil
是CSV工具類,主要封裝了兩個方法:
getReader 用於對CSV文件讀取
getWriter 用於生成CSV文件
1、讀取文件
讀取為CsvRow
CsvReader reader = CsvUtil.getReader(); //從文件中讀取CSV數據 CsvData data = reader.read(FileUtil.file("test.csv")); List<CsvRow> rows = data.getRows(); //遍歷行 for (CsvRow csvRow : rows) { //getRawList返回一個List列表,列表的每一項為CSV中的一個單元格(既逗號分隔部分) Console.log(csvRow.getRawList()); }
讀取為Bean列表
CsvReader csvReader = CsvUtil.getReader(); //使用GBK編碼,否則中文出現亂碼, // 若使用Utf8 可以直接使用ResourceUtil.getUtf8Reader("test2.csv") List<BeanDto> rows = csvReader.read(ResourceUtil.getReader("test2.csv", CharsetUtil.CHARSET_GBK), BeanDto.class); for (BeanDto bean : rows) { System.out.println(bean); }
讀取為Bean時,第一行是標題,必須與Bean的屬性名一致,如果不一致可以使用@Alias("csv文件中名稱")注解,該注解作用在屬性上,例如
@Data public class BeanDto { @Alias("設備內碼") private String indexCode; @Alias("IP地址") private String address; @Alias("端口號") private Integer port; @Alias("設備賬號") private String userName; }
執行結果