[英]convert java object list into CSV
我有对象列表,其中包含来自XML源的对象中的许多值:
iit.getHomeCurrency().getPrice().toString()
如果我把System.out.println(iit.getHomeCurrency()。getPrice()。toString()); 我获得了对象的完整列表。
但是,当我想将此对象转换为CSV时,使用
CSVWriter csvWriter = new CSVWriter(new FileWriter("example.csv"));
csvWriter.writeNext(new String[]{iit.getHomeCurrency().getPrice().toString(),"/n"}
csvWriter.close();
我在csv文件中只有一行:(
码:
for(int i=0;i<contentElement.size();i++){
JAXBElement<ListInvoiceType> invoiceTypeElement = (JAXBElement<ListInvoiceType>) contentElement.get(i);
ListInvoiceType listInvoiceType = invoiceTypeElement.getValue();
List<InvoiceType> invoiceTypeList = listInvoiceType.getInvoice();
for(InvoiceType invoiceType:invoiceTypeList ){
InvoiceHeaderType invoiceHeaderType = invoiceType.getInvoiceHead
er();
InvoiceDetailType invoiceDetailType = invoiceType.getInvoiceDetail();
InvoiceItemType iit = null;
InvoiceAdvancePaymentItemType iapit = null;
for(Serializable s:invoiceDetailType.getContent()){
if(s instanceof JAXBElement) {
JAXBElement<?> element = (JAXBElement)s;
if(element.getValue() instanceof InvoiceItemType){
iit = (InvoiceItemType)element.getValue();
}
else if(element.getValue() instanceof InvoiceAdvancePaymentItemType){
iapit = (InvoiceAdvancePaymentItemType)element.getValue();
}
else{
throw new Exception("xx");
}
}
else if(s instanceof String){
}
else{
throw new Exception("xx");
}
if(iit!=null){
CSVWriter csvWriter = new CSVWriter(new FileWriter("example.csv"));
csvWriter.writeNext(new String[]{iit.getHomeCurrency().getPrice().toString(), iit.getCentre().getIds() ,invoiceHeaderType.getDate().toString(),invoiceHeaderType.getInvoiceType().value(),"\r\n"});
csvWriter.close();
我应该怎么做才能使Java将每个对象写入到csv文件的新行中?
谢谢
主要问题似乎是您为循环的每次迭代打开一个新文件,然后移动
CSVWriter csvWriter = new CSVWriter(new FileWriter("example.csv"));
到for
循环之前
CSVWriter csvWriter = new CSVWriter(new FileWriter("example.csv"));
for(Serializable s:invoiceDetailType.getContent()){
if(s instanceof JAXBElement) {
//...
}
if( iit !=n ull){
csvWriter.writeNext(new String[]{iit.getHomeCurrency().getPrice().toString(), iit.getCentre().getIds() ,invoiceHeaderType.getDate().toString(),invoiceHeaderType.getInvoiceType().value(),"\r\n"});
}
并在for
循环后关闭文件
} //end for loop
csvWriter.close();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.