将java对象列表转换为CSV
我有一个对象列表,对象中有许多值,这些值来自XML源:将java对象列表转换为CSV,java,list,csv,object,Java,List,Csv,Object,我有一个对象列表,对象中有许多值,这些值来自XML源: iit.getHomeCurrency().getPrice().toString() 如果我把System.out.println(iit.getHomeCurrency().getPrice().toString())放进去; 我成功地得到了完整的对象列表 但是,当我想将此对象转换为CSV时,使用 CSVWriter csvWriter = new CSVWriter(new FileWriter("example.csv")); c
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(inti=0;i主要的问题似乎是,对于循环的每次迭代,您都会打开一个新文件move
CSVWriter csvWriter = new CSVWriter(new FileWriter("example.csv"));
在循环的之前
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"});
}
} //end for loop
csvWriter.close();
并在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"});
}
} //end for loop
csvWriter.close();
感谢Joakim,它帮助了我。现在我有了另一个简单的问题,在XML之外,它可能会发生。在这种情况下,我得到了空指针异常。因此,我尝试使用以下方法解决这个问题:if(iit.getcenter().getIds()==null){iit.getcenter().getIds()=“数据未填充”;}如果对象为空,则填充文本“数据未填充”在csv中。但是,通过这样的代码atempt,我得到了一个错误:赋值的左侧必须是一个变量。请问我如何修复空指针异常?@bennes您得到错误是因为getIds()
是一种方法,因此您无法为其分配任何内容。请在if中使用局部变量,并为其指定getIds
的值或您拥有的字符串,然后在writeNext
调用中使用该变量。或者更改getIds
以返回“未填充的数据”我为我的noob问题而不是nullHi-Joakim感到抱歉:(但当我尝试:String hu=iit.getcenter().getIds().toString();if(hu==null){hu=“data not filled”;}我在第一行得到了NullPointer异常(String hu=iit.getcenter().getIds().toString()):(其他建议也失败了,我做错了什么:)当你知道getid可能返回null时,为什么要做toString()?首先检查if
ifgetIds()
returnnull,然后相应地采取行动。if(iit.getcenter().getIds()==null){hu=…}否则{…}
是的,问题也是iit.getcenter().可能为空,现在已修复。一切正常,非常感谢Joakim,祝您愉快:)