将单个bean rowerise每个属性写入CSV



我正在使用openCSV,我有一个单个模型(假设Person带有三个属性name, age, sex(,我想存储到CSV-File。

它应该看起来如下:

"name";"Jon";
"age";"30";
"sex";"male";

第一列包含属性名称,第二列包含值(例如键值对(。

我的实现如下:

writer = new FileWriter("./settings.csv");
StatefulBeanToCsvBuilder<Person> beanToCsv = new StatefulBeanToCsvBuilder<SettingsModel>(writer);
StatefulBeanToCsv<SettingsModel> beanWriter = beanToCsv.build();
beanWriter.write(model);
writer.close();

我知道beanToCsv上有一些设置可用,但我不知道如何。

如果可能的话?感谢您的帮助:(

statefulbeantocsv具有将bean序列化为表格格式的标准方式。

您真正想要的是将豆弄平成钥匙值对。因此,技巧应该使用beanmap保存人豆数据。由于bean没有嵌套对象,我们可以简单地将其转换为valueholder.key和valuehue.value。

最终以这种方式应用了此策略列mappingstrategy:

ColumnPositionMappingStrategy<ValueHolder> strategy = new ColumnPositionMappingStrategy<>();
strategy.setType(ValueHolder.class);
strategy.setColumnMapping("key", "value");
FileWriter writer = new FileWriter("./settings.csv");
StatefulBeanToCsvBuilder<ValueHolder> csvBuilder = new StatefulBeanToCsvBuilder<>(writer);
StatefulBeanToCsv<ValueHolder> beanWriter = csvBuilder.withSeparator(';').withMappingStrategy(strategy).build();
beanWriter.write(content);
writer.close();

可以在此处访问完整的工作样本。

最新更新