我尝试使用OpenCSV从CSV文件导入记录。我观察到OpenCSV实际上丢失了文件最后一行中的一些条目。代码如下。我知道我可以执行writeAll操作。但我需要单独的行来执行其他操作。我的文件中的记录数量大约为56000。
CSVReader reader = new CSVReader(new BufferedReader(new InputStreamReader(new FileInputStream(inputFile))));
CSVWriter writer = new CSVWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(path2+File.separator+fileName)))), ',');
List<String[]> fileContents = new ArrayList<String[]>();
fileContents = reader.readAll();
for(int i=0; i<fileContents.size(); i++){
String[] row = fileContents.get(i);
writer.writeNext(row);
3条答案
按热度按时间i1icjdpr1#
我发现了错误。我没有关闭writer. writer.close();文件已经写好了,不知道为什么写不完。
q0qdq0h22#
在使用
StatefulBeanToCsv<T> beanWriter
时遇到了Abhiroop描述的类似问题。感谢您记录writer.close
的错误!由于Writer实现了扩展
AutoCloseable
的Closeable
,因此应将其 Package 在try-with-resources中,如下所示。对我来说,
StatefulBeanToCsv
的优点是它可以与一个MappingStrategy<T>
一起使用。2eafrhcq3#
请检查在缺少值之前,其中一个值是否包含逗号(即“这是一个csv值,包含逗号”)。