java可以读写csv文件吗_java读写csv文件

读写csv可以用exce4j框架

读写csv最简便的框架 exce4j

mvn依赖包

com.github.crab2died

Excel4J

2.1.4-Final2

读写操作

读 需要一个bean对象

List listStudent2s= ExcelUtils.getInstance().readCSV2Objects("csvtest_test2.csv", Student2.class);

写 需要一个bean对象

ExcelUtils.getInstance().exportObjects2CSV(list, Student2.class, "csvtest_test2.csv");

详细代码如下

import java.io.File;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import org.apache.commons.io.FileUtils;

import com.github.crab2died.ExcelUtils;

import com.github.crab2died.annotation.ExcelField;

import com.github.crab2died.exceptions.Excel4JException;

import com.testfan.csv.convetor.DateConvertible;

public class Student2 {

@ExcelField(title = "学号", order = 1)

private Long id;

@ExcelField(title = "姓名", order = 2)

private String name;

@ExcelField(title = "入学日期", order = 3, writeConverter =DateConvertible.class, readConverter =DateConvertible.class )

private Date date;

@ExcelField(title = "班级", order = 4)

private Integer classes;

@ExcelField(title = "是否开除", order = 5)

private boolean expel;

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Date getDate() {

return date;

}

public void setDate(Date date) {

this.date = date;

}

public Integer getClasses() {

return classes;

}

public void setClasses(Integer classes) {

this.classes = classes;

}

public boolean isExpel() {

return expel;

}

public void setExpel(boolean expel) {

this.expel = expel;

}

public Student2(Long id, String name, Date date, Integer classes, boolean expel) {

this.id = id;

this.name = name;

this.date = date;

this.classes = classes;

this.expel = expel;

}

public Student2() {

}

@Override

public String toString() {

return "Student2{" +

"id=" + id +

", name='" + name + '\'' +

", date=" + date +

", classes=" + classes +

", expel='" + expel + '\'' +

'}';

}

//excel4j 最新版本支持 csv 注解

public static void main(String[] args) throws Excel4JException{

List list = new ArrayList();

list.add(new Student2(1000001L, "张三", new Date(), 1, true));

list.add(new Student2(1010002L, "古尔丹", new Date(), 2, false));

list.add(new Student2(1010003L, "蒙多(被开除了)", new Date(), 6, true));

list.add(new Student2(1010004L, "萝卜特", new Date(), 3, false));

list.add(new Student2(1010005L, "奥拉基", new Date(), 4, false));

list.add(new Student2(1010006L, "得嘞", new Date(), 4, false));

list.add(new Student2(1010007L, "瓜娃子", new Date(), 5, true));

list.add(new Student2(1010008L, "战三", new Date(), 4, false));

list.add(new Student2(1010009L, "李四", new Date(), 2, false));

//删除csvtest_test2.csv文件

try {

FileUtils.forceDelete(new File("csvtest_test2.csv"));

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//写入csv

ExcelUtils.getInstance().exportObjects2CSV(list, Student2.class, "csvtest_test2.csv");

//读取csv

List listStudent2s= ExcelUtils.getInstance().readCSV2Objects("csvtest_test2.csv", Student2.class);

for (Student2 student2 : listStudent2s) {

System.out.print(student2);

System.out.println();

}

}

}

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

import com.github.crab2died.converter.ReadConvertible;

import com.github.crab2died.converter.WriteConvertible;

public class DateConvertible implements WriteConvertible,ReadConvertible{

SimpleDateFormat format =new SimpleDateFormat("yyyy-MM-dd_HH_mm:ss");

@Override

public Object execWrite(Object object) {

if(object instanceof Date) {

Date date =(Date)object;

return format.format(date);

}

return object;

}

@Override

public Object execRead(String object) {

try {

return format.parse(object);

} catch (ParseException e) {

//e.printStackTrace();

}

return object;

}

}

读的效果

Student2{id=1000001, name='张三', date=Thu Aug 06 15:38:09 CST 2020, classes=1, expel='true'}

Student2{id=1010002, name='古尔丹', date=Thu Aug 06 15:38:09 CST 2020, classes=2, expel='false'}

Student2{id=1010003, name='蒙多(被开除了)', date=Thu Aug 06 15:38:09 CST 2020, classes=6, expel='true'}

Student2{id=1010004, name='萝卜特', date=Thu Aug 06 15:38:09 CST 2020, classes=3, expel='false'}

Student2{id=1010005, name='奥拉基', date=Thu Aug 06 15:38:09 CST 2020, classes=4, expel='false'}

Student2{id=1010006, name='得嘞', date=Thu Aug 06 15:38:09 CST 2020, classes=4, expel='false'}

Student2{id=1010007, name='瓜娃子', date=Thu Aug 06 15:38:09 CST 2020, classes=5, expel='true'}

Student2{id=1010008, name='战三', date=Thu Aug 06 15:38:09 CST 2020, classes=4, expel='false'}

Student2{id=1010009, name='李四', date=Thu Aug 06 15:38:09 CST 2020, classes=2, expel='false'}

写的效果

2db76c6fdafedc1629fbcb74336374d2.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值