Problem beim CSV-Import

wavefront6

Mitglied
Hallo,

ich habe ein Problem beim einlesen einer CSV-Datei.

Die CSV-Datei sieht so aus:
Code:
StockID, Date, Rate
0, 2011/02/24 22:06, 43.24
0, 2011/02/24 22:04, 43.24
0, 2011/02/24 22:05, 43.24
1, 2011/02/24 22:06, 9.92
1, 2011/02/24 22:04, 9.92
1, 2011/02/24 22:05, 9.92
DEPOT, 2011/02/24 22:06, 13964.0
DEPOT, 2011/02/24 22:04, 13964.0
DEPOT, 2011/02/24 22:05, 13964.0


Der dazugehörige Java-Code:
Java:
	public void csvImportHistory(String path) {
		BufferedReader br = null;
		
		try {
			br = new BufferedReader(new FileReader(path));
			String current_line = null;
			String current_row[] = null;
			this.header = br.readLine().split(",");
			// Debug
			System.out.println("\tCSV-Import:");
			
			while ((current_line = br.readLine()) != null) {
				// Debug
				System.out.println("\t");

				current_row = current_line.split(",");
				System.out.print(current_line);

				if (!(current_row[0] == "DEPOT")) {
					int id = Integer.parseInt(current_row[0]);

					MyStocks.get(id).insertStockHistory(current_row[1], Double.parseDouble(current_row[2]));
				} else {
					Stock.insertDepotHistory(current_row[1], Double.parseDouble(current_row[2]));
				}
			}
		} catch (IOException e) {
			System.err.println(e);
		}
	}

Der ausgeworfene Fehler sieht so aus:
Code:
...
1, 2011/02/24 22:05, 9.92	
DEPOT, 2011/02/24 22:06, 13964.0Exception in thread "main" java.lang.NumberFormatException: For input string: "DEPOT"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:481)
	at java.lang.Integer.parseInt(Integer.java:514)
	at model.StocksModel.csvImportHistory(StocksModel.java:116)
	at view.RunAllStocks.main(RunAllStocks.java:33)

Ich kann den Fehler nicht finden, könnt Ihr mir Tipps geben?

Dank im Voraus und Gruß.
 
Steht doch da: Du versuchst den String "DEPOT" in einen Integer zu parsen.

Die Zeile ist dein Problem:
Code:
int id = Integer.parseInt(current_row[0]);
 
Jain, es ist nicht definiert ob zwei Strings mit dem selben Inhalt das selbe object referenzieren oder unterschiedliche. Daher kann == true liefern muss es aber nicht (und deshalb nimmt man equals)
 

Zurück
Oben