2017-02-18 1 views
1

meine CSV-Datei enthält also so etwas wie in ExcelWie scanne ich aus der zweiten Reihe meiner CSV-Daten in die verknüpfte Liste?

 speed period warning pair 
1  26  1  1  1 
2  26  1  1  1 
3  26  1  1  1 
4  26  1  1  1 

In meinem Scanner Datei

i haben
public class scanner { 

    public static void main(String[] args) throws IOException { 
     // open file input stream 
     BufferedReader reader = new BufferedReader(new FileReader(
       "amis.csv")); 

     // read file line by line 
     String line = null; 
     Scanner scanner = null; 
     int index = 0; 
     List<amis> empList = new ArrayList<>(); 

     while ((line = reader.readLine()) != null) { 
      amis emp = new amis(); 
      scanner = new Scanner(line); 
      scanner.useDelimiter(","); 
      while (scanner.hasNext()) { 
       String data = scanner.next(); 
       if (index == 0) { 
        emp.setId(data); 
       } else if (index == 4) { 
        emp.setPair(data); 
       } else if (index == 3) { 
        emp.setWarning(data); 
       } else if (index == 2) { 
        emp.setPeriod(data); 
       }else if (index == 1) { 
        emp.setSpeed(data); 
       }else { 
        System.out.println("invalid data::" + data); 
       } 
       index++; 
      } 
      index = 0; 
      empList.add(emp); 
     } 

     //close reader 
     reader.close(); 

     System.out.println(empList); 

    } 

Aber die Ausgabe meiner verknüpften Liste zeigen

ID = "" :: Paar = "Paar" :: Warnung = "Warnung" :: Periode = "Periode" :: Geschwindigkeit = "Geschwindigkeit",

ID = "1" :: Paar = 1 :: Warnung = 1 :: Periode = 1 :: Geschwindigkeit = 26,

ID = "2" :: Pair = 1 :: Warnung = 1 :: Periode = 1 :: Geschwindigkeit = 26,

ID = "3" :: Pair = 1 :: Warnung = 1 :: Periode = 1 :: Geschwindigkeit = 26,

ID = "4" :: Pair = 1 :: Warnung = 1 :: Periode = 1 :: Geschwindigkeit = 26,

Wie fange ich einfach von der zweite Reihe.

+2

Rufen Sie 'reader.readLine();' vor Ihrer 'while' Schleife auf. –

+0

Müssen Sie CSV-Datei wirklich so lesen? Wenn nicht [commons-csv] (https://commons.apache.org/proper/commons-csv/). Wenn ja, versuchen Sie die empfohlene Methode zum Lesen von Dateien zu verwenden: [Java try with resources] (https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html) – adgon92

+0

@AndyTurner Vielen Dank! Das hat es gelöst – computer

Antwort

2

können Sie rufen scanner.nextLine vor while-Schleife, zB:

String headers = reader.nextLine(); 
while ((line = reader.readLine()) != null) { 

Dies ist, was die Dokumentation sagt:

Fortschritte dieser Scanner über die aktuelle Zeile und gibt den Eingang, dass war übersprungenen . Diese Methode gibt den Rest der aktuellen Zeile ohne Zeilentrennzeichen am Ende zurück. Die Position wird auf den Anfang der nächsten Zeile festgelegt.

Also, in der While-Schleife erhalten Sie alle Zeilen aus der zweiten Zeile.

Verwandte Themen