2014-11-21 2 views
0
List<First> listfirst(String dir){  
     try {   
      List<First> list=new ArrayList<First>();      
      CSVReader reader = new CSVReader(new FileReader(dir)); 
      String [] nextLine; 
      while ((nextLine = reader.readNext()) != null) { 
      // nextLine[] is an array of values from the line 
      list.add(new First(nextLine[0], nextLine[1], nextLine[2],nextLine[3], nextLine[4],nextLine[5], nextLine[6], nextLine[7])); 
      }   
      return list; 
     } catch (Exception e) {    
      e.printStackTrace(); 
      return null; 
     } 
    } 

Есть строки в 1994 году. Но этот код печатает только 388 строк. Что я могу сделать?Читать csv с opencsv

ответ

1

Это то, что я хотел бы предложить для чтения должен выглядеть следующим образом:

чтения файла

import au.com.bytecode.opencsv.CSVReadProc; 
import java.util.Arrays; 

csv.read("example.csv", new CSVReadProc() { 
    public void procRow(int rowIndex, String... values) { 
     System.out.println(rowIndex + ": " + Arrays.asList(values)); 
    } 
}); 
0

Если вы хотите, чтобы прочитать всю CSV, прочитать его один раз и перебирать его как,

List<String[]> allRows = reader.readAll(); 

     //Read CSV line by line and use the string array as you want 
    for(String[] row : allRows){ 
     System.out.println(Arrays.toString(row)); 
    } 
    } 

А также попробуйте использовать конструктор CSVReader с,

CSVReader reader = new CSVReader(new FileReader("input.csv"), ',', '"', 0); 
// 0 refers the 1st line 
Смежные вопросы