openCsv To java Bean

在网上找opencsv Write时,意外的发现国内的openCsv的经验都是read到string[],感觉很不符合对象思想啊,这里附一份openCsv To Bean 的源码,虽然还是感觉有点蠢笨,但是本人感觉比string[]的方式好

public List<Object> readFile(String fileName) {
		InputStreamReader fileReader = null;
		CSVReader csvReader = null;
		ColumnPositionMappingStrategy strat = new ColumnPositionMappingStrategy();
		CsvToBean csv = new CsvToBean();
		String[] columns = null; // 用于存放映射字段
		List<Object> listobject = new ArrayList<Object>(); // 此处可以写成任意对象
		try {
			// fileReader = new FileReader(file); // 创建文件读写器
			fileReader = new InputStreamReader(new FileInputStream(fileName), "UTF-8");

			csvReader = new CSVReader(fileReader); // 创建CSV读写对象
			strat.setType(实体类.class);
			// 此处的string[] 代表的是对应的实体类的字段,(按照csv文件的顺序对应字段,感觉如果顺序一样可以用反射来做)
			columns = new String[] { "personId", "serial", "number", "fullName", "sex", "birth", "startDate", "jobId", "emailAddress", "phoneNumber", "deptId", "status", "brand", "personType",
					"effectiveStartDate", "pPersonId", "transferDeptId" };
			strat.setColumnMapping(columns); // 映射字段放进处理的类
			listobject = csv.parse(strat, csvReader); // 根据映射 读取存入 list
		} catch (FileNotFoundException e1) {
			e1.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				csvReader.close();
				fileReader.close();
			} catch (IOException e) {
				e.printStackTrace();
			}

		}
		return listobject;
	}

实体类为

private String personId; // 人员ID
	private String serial; // 序列号
	private String deptId; // 部门ID
	private String transferDeptId; // 临时部门ID
	private String number; // 人员编号
	private String fullName; // 姓名
	private String sex; // 性别
	private String birth; // 生日
	private String startDate; // 入职日期
	private String jobId; // 职务id
	private String emailAddress; // 邮箱
	private String phoneNumber; // 电话
	private String status; // 员工状态
	private String brand; // 品牌信息
	private String personType; // 人员类型
	private String effectiveStartDate; // 更新日期
	private String pPersonId; // 直属上级领导id
引用的包
<dependency>
<span style="white-space:pre">	</span><groupId>net.sf.opencsv</groupId>
<span style="white-space:pre">	</span><artifactId>opencsv</artifactId>
<span style="white-space:pre">	</span><version>2.3</version>
</dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值