2014-09-30 38 views
0

我尝试使用OpenCSV从CSV文件导入记录。我发现OpenCSV实际上错过了我文件最后一行的一些条目。代码如下。我知道我可以做一个writeAll操作。但我需要一些其他操作的单个行。我的文件中记录的数量约为56000。未完成OpenCSV导入

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); 
+0

而不是'新建文件(路径2 +文件。选择器+文件名)'使用'新的文件(路径2,文件名)'。这样你就不会忘记添加分隔符。 – Tom 2014-09-30 07:55:02

回答

0

请检查之前的缺失值,这些值中的一个具有一个逗号内侧(即,“这是一个CSV值,用逗号里面”)。

+0

没有任何内容中没有任何逗号。其实我试图将这些条目分成10000个条目的小文件。但是在最后一行中的每个较小文件中都会漏掉一些条目。 – Abhiroop 2014-09-30 07:47:06

+0

是否有任何其他转义字符(例如''等)在缺失值之前的值? 我在过去有类似的问题,并且原来csv文件中的值包含转义字符, opencsv处理不好 – javaist 2014-09-30 08:29:59

+0

只有单词,即使它存在,y也不会正确写出最后一行吗?我觉得它很奇特 – Abhiroop 2014-10-01 09:32:13

0

我想出了错误。我没有关闭作家。 writer.close(); 并且文件被完全写入。不知道为什么它没有完成写文件,否则。