栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

带列标题的StatefulBeanToCsv

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

带列标题的StatefulBeanToCsv

ColumnPositionMappingStrategy#generateHeader返回空数组

@Overridepublic String[] generateHeader() {    return new String[0];}

如果从BeanToCsv构建器中删除MappingStrategy

// replace StatefulBeanToCsv<Product> beanWriter = builder.withMappingStrategy(mappingStrategy).build();// withStatefulBeanToCsv<Product> beanWriter = builder.build();

它将产品的类成员写为CSV标头

如果您的产品类成员名称是

"productCode", "MFD", "EXD"

这应该是正确的解决方案

否则,添加@CsvBindByName批注

import com.opencsv.bean.CsvBindByName;import com.opencsv.bean.StatefulBeanToCsv;import com.opencsv.bean.StatefulBeanToCsvBuilder;import java.io.FileWriter;import java.io.Writer;import java.util.ArrayList;import java.util.List;public class CsvTest {    public static void main(String[] args) throws Exception {        Writer writer = new FileWriter(fileName);        StatefulBeanToCsvBuilder<Product> builder = new StatefulBeanToCsvBuilder<>(writer);        StatefulBeanToCsv<Product> beanWriter = builder.build();        List<Product> products = new ArrayList<>();        products.add(new Product("1", "11", "111"));        products.add(new Product("2", "22", "222"));        products.add(new Product("3", "33", "333"));        beanWriter.write(products);        writer.close();    }    public static class Product {        @CsvBindByName(column = "productCode")        String id;        @CsvBindByName(column = "MFD")        String member2;        @CsvBindByName(column = "EXD")        String member3;        Product(String id, String member2, String member3) { this.id = id; this.member2 = member2; this.member3 = member3;        }        public String getId() { return id;        }        public void setId(String id) { this.id = id;        }        public String getMember2() { return member2;        }        public void setMember2(String member2) { this.member2 = member2;        }        public String getMember3() { return member3;        }        public void setMember3(String member3) { this.member3 = member3;        }    }}

输出:

“ EXD”,“ MFD”,“ PRODUCTCODE”

“ 111”,“ 11”,“ 1”

“ 222”,“ 22”,“ 2”

“ 333”,“ 33”,“ 3”

请注意; 班级,由于OpenCSV库使用了Reflection,所以getter和setter程序需要公开



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/464034.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号