# Csv-Files einlesen



## IggeB (30. Mai 2008)

Hallo zusammen,
ich bin ein noch sehr unerfahrener Programmierer und habe die Aufgabe bekommen aus einem csv-file daten einzulesen und diese danach zu verarbeiten. Dabei bräuchte ich jedoch nicht alle Spalten, sondern nur bestimmte...die einträge sind durch ' ; ' voneinander getrennt. habe mir auch schon die api durchgelesen, aber komme nicht wirklich weiter. Habe überlegt ein mehrdimensionales Array zu deklarieren und dort die Daten zu speichern, nur die Umsetzung hapert noch. Vielleicht könnt ihr mir ja helfen.
Gruß Igge


----------



## zerix (30. Mai 2008)

Hallo,

vielleicht testest du mal die Suchfunktion des Forums und schaust die die Themen an. Da ist sicherlich was hilfreiches für dich dabei.

MFG

Sascha


----------



## RaketenPeter (30. Mai 2008)

Also hier mal ein Quellcode mit dem cih csv Dateien verglichen habe! 
Nach welchem Kriterium möchtest Du die Zeilen wählen 


```
import java.io.*;


public class DateiErzeuger {

	public DateiErzeuger()
	{

	}public static String[] zeileTrennen(String zeile)
	{
		//System.out.println("String in Klasse Parser.java" + zeile);
		//Aufteilen des Strings nach ; und schreiben in String Array
		String[] ergebnis = zeile.split(";");
		//Testausgabe der parser Funktion!
		/*System.out.println(ergebnis[0].trim());
		System.out.println(ergebnis[1].trim());
		System.out.println(ergebnis[2].trim());*/
		return ergebnis;
	}

	public static void main(String[] argv)
	{

	    String nameAusgabeDatei = "update.txt";
	    String namekeinTreffer = "keinTreffer.txt";

	    String nameRichtigeDatei = "adresseels.txt";
	    String nameFalscheDatei = "erkennung_anrufer.txt";
	    String zeileRichtig = null;
	    String zeileFalsch = null;
	    String update = "";


	    String[] splitRichtig = null;
	    String[] splitFalsch = null;

	    FileWriter ausgabeDatei     = null;
	    FileWriter keinTrefferDatei = null;
	    FileReader richtigeDatei    = null;
	    FileReader falscheDatei     = null;

	    BufferedReader brRichtig=null;
	    BufferedReader brFalsch=null;
	    BufferedWriter bw=null;
	    BufferedWriter bwkeinTreff = null;

	    boolean gefunden = false;

		try
		{
			ausgabeDatei = new FileWriter(nameAusgabeDatei);
			keinTrefferDatei = new FileWriter(namekeinTreffer);
			richtigeDatei = new FileReader(nameRichtigeDatei);
			falscheDatei = new FileReader(nameFalscheDatei);
			System.out.println("FileReader erzeugt!");
			System.out.flush();
		}
		catch (Exception e1)
		{
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

	    try
	    {
			brFalsch = new BufferedReader(falscheDatei);
			brRichtig = new BufferedReader(richtigeDatei);
			bw = new BufferedWriter(ausgabeDatei);
			bwkeinTreff = new BufferedWriter(keinTrefferDatei);

			System.out.println("Buffered Reader erzeugt.");
			System.out.flush();
		}
	    catch (Exception e)
	    {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	    System.out.println("Vor Schleife.");
	    System.out.flush();
	    try
	    {
	      while ((zeileFalsch = brFalsch.readLine()) != null)
	      {
              gefunden = false;
              splitFalsch = zeileTrennen(zeileFalsch);

              richtigeDatei = new FileReader(nameRichtigeDatei);
              brRichtig = new BufferedReader(richtigeDatei);
              while ((zeileRichtig = brRichtig.readLine()) != null)
	    	  {
	    		  splitRichtig = zeileTrennen(zeileRichtig);
	    		  if ( splitFalsch[1].trim().equals(splitRichtig[1].trim())
	    		       && splitFalsch[2].trim().equals(splitRichtig[2].trim()))
	    		    {
	    			    update = "update erkennung_anrufer set Ort ='" + splitRichtig[0].trim() +
	    				"' where Ort = '" + splitFalsch[0].trim() + "' and Strasse in ( select strasse from " +
	    				"erkennung_anrufer where Strasse = '" + splitFalsch[2].trim() + "' );" + "\n" +
	    				"commit;" + "\n";
	    			    bw.write(update);
//	    			  System.out.println("Treffer! PLZ:"+splitFalsch[1] + "PasstPLZ:" +splitRichtig[1] + "   StraßeFalsch:"+ splitFalsch[2] + " passt Straße:"+ splitRichtig[2]);
//	    			  System.out.flush();
	    			  gefunden = true;
	    			  break;
	    		    }
	    	  }
              brRichtig.close();
              if (gefunden == false)
              {
            	  bwkeinTreff.write(zeileFalsch + "\n");
              }
	      }
	      brFalsch.close();
	      bw.close();
	      bwkeinTreff.close();
	    }
	    catch(Exception ex1)
	    {
	    	System.out.println("Lulli falsch!!");
	    }

	    System.out.println("Fertig!!");

  } // main
```

Vielleciht hilft Dir das auf die Sprünge !


----------

