1.pom.xml
<!--cvs-->
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>3.8</version>
</dependency>
2.实体
@Data
public class CsvDate extends BaseRowModel {
@ApiModelProperty(value = "蔚蓝ID")
private String id;
@ApiModelProperty(value = "书名")
private String bookName;
@ApiModelProperty(value = "isbn")
private String isbn;
@ApiModelProperty(value = "定价")
private String price;
@ApiModelProperty(value = "库存")
private String stock;
@ApiModelProperty(value = "售价")
private String salePrice;
@ApiModelProperty(value = "折扣")
private String discount;
}
3.代码
@Slf4j
public class CSVUtil {
public static List<CsvDate> csv() {
CsvDate hotel = null;
//生成CsvReader对象,以,为分隔符,GBK编码方式
CsvReader r = null;
try {
List<CsvDate> hotels = new ArrayList<>();
String csvFilePath = "C:\\Users\\Administrator\\Desktop\\123.csv";
r = new CsvReader(csvFilePath, ',', Charset.forName("GBK"));
//读取表头
r.readHeaders();
//逐条读取记录,直至读完
while (r.readRecord()) {
hotel = new CsvDate();
hotel.setId(r.get(0));
hotel.setBookName(r.get(1));
hotel.setIsbn(r.get(2));
hotel.setPrice(r.get(3));
hotel.setStock(r.get(4));
hotel.setSalePrice(r.get(5));
hotel.setDiscount(r.get(6));
hotel.setPublish(r.get(7));
hotel.setAuthor(r.get(8));
hotels.add(hotel);
}
return hotels;
} catch (Exception e) {
log.info("csv文件批量读取异常", e);
return null;
} finally {
r.close();
}
}
public static void main(String[] args) {
List<CsvDate> csv = csv();
System.out.println(csv.size());
log.info("cvs结果:{}", JSONObject.toJSONString(csv.get(6)));
for ( CsvDate c :csv ) {
System.out.println(c.getId());
}
}
}