java 对象转csv_如何将复杂的Java对象写入CSV文件

因此,我知道如何将简单的Java对象写入CSV文件,但是我遇到了具有更复杂属性的Java对象的麻烦。以下是我目前拥有的一个示例:

人.java

public class Person {

@CsvBindByName(column="name")

private String name;

@CsvBindByName(column="position")

private String position;

private AddressInfo info;

// getters and setters ...

// overridden toString method ...

}

AddressInfo.java

public class AddressInfo {

@CsvBindByName(column="street")

private String street;

@CsvBindByName(column="city")

private String city;

@CsvBindByName(column="state")

private String state;

// getters and setters ...

// overridden toString method ...

}

PersonWriter.java

public class PersonWriter {

private static final Logger LOGGER = LoggerFactory.getLogger(PersonWriter.class);

public static boolean writeCsVFromPerson(String directory, List persons) {

File file = new File(directory + "/person-" + System.nanoTime() + ".csv");

try {

Writer writer = new FileWriter(file);

MappingStrategy ms = new HeaderColumnNameMappingStrategy();

ms.setType(Person.class);

StatefulBeanToCsv sbc = new StatefulBeanToCsvBuilder(writer)

.withSeparator(CSVWriter.DEFAULT_SEPARATOR)

.withMappingStrategy(ms)

.build();

sbc.write(persons);

writer.close();

} catch (Exception e) {

LOGGER.error("Failed to create Person CSV file", e)

}

return file.exists() && file.isFile();

}

}

就创建一个有效的CSV文件而言(大部分情况下),它可以工作,但是CSV文件不包含任何AddressInfo属性。反之(从CSV读取到Java Object)效果很好,所以我不确定自己在做什么错。是否有人对此事有经验或知道我可能需要在这里纠正的问题?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值