Erste Schritte Auslesen CSV

Hy,
ich lerne gerade Java. Nun bin ich an folgendem Punkt angelangt: Ich versuche eine CSV Auszulesen, doch so langsam verzweifele ich am Souce Code.
Ich benutze Eclipse als IDE. Ich gebe ihm die Argumente an [Also z.B Java Test Vorname Peter] und er gibt mir dann nur die aus, bei denen die Argumente passen.

Hier der Code der Main Classe:

Java:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
 
public class UseBufferedReader {
 
  public static void main(String[] args[]) {
 
    try {
    	String sCurrentLine;
 
	BufferedReader br = new BufferedReader(new FileReader("adressen.csv"));
 
        while ((sCurrentLine = br.readLine()) != null) {
	       System.out.println(sCurrentLine);
	       String fileReaderLine;
	       String [] splittArray = fileReaderLine.split(":");
	       
        } 
 
    } catch (FileNotFoundException e) {
 
      e.printStackTrace();
 
    } catch (IOException e) {
 
      e.printStackTrace();
 
    }


 
  	}
  Adresse Adresse = new Adresse (splittArray[2],splittArray[1],Integer.parseInt(splittArray[4]),splittArray[5],splittArray[11] );
  Adresse [1]= Adresse;
  
  gefunden=false;
  
  if(arg[0].equals("Vorname")) {
	  for(int x=1;x<i;x++) {
	  if(Adresse[x].getVorname().equals(arg[1])){
	  Adresse[x].showAdress();
	  gefunden = true;
	  break;
	  }
	  }
	  if(!gefunden) {
	  System.out.println("keine Adresse gefunden!");
	  }
	  }

	  if(arg[0].equals("Nachname")) {
	  for(int x=1;x<i;x++) {
	  if(Adresse[x].getNachname().equals(arg[1])){
	  Adresse[x].showAdress();
	  gefunden = true;
	  break;
	  }
	  }
	  if(!gefunden) {
	  System.out.println("keine Adresse gefunden!");
	  }
	  }

	  if(arg[0].equals("PLZ")) {
	  for(int x=1;x<i;x++) {
	  if(Adresse[x].getPLZ() == Integer.parseInt(arg[1])){
	  Adresse[x].showAdress();
	  gefunden = true;
	  break;
	  }
	  }
	  if(!gefunden) {
	  System.out.println("keine Adresse gefunden!");
	  }
	  }

	  if(arg[0].equals("Ort")) {
	  for(int x=1;x<i;x++) {
	  if(Adresse[x].getOrt().equals(arg[1])){
	  Adresse[x].showAdress();
	  gefunden = true;
	  break;
	  }
	  }
	  if(!gefunden) {
	  System.out.println("keine Adresse gefunden!");
	  }
	  }
	   
	  if(arg[0].equals("EMail")) {
	  for(int x=1;x<i;x++) {
	  if(Adresse[x].getEMail().equals(arg[1])){
	  Adresse[x].showAdress();
	  gefunde = true;
	  break;
	  }
	  }
	  if(gefunden=false) {
	  System.out.println("keine Adresse gefunden!");
	  }
	  }
	  System.out.print(i + " Adressen der adressen.csv");

		}
}

und der Code meiner Adress Classe:
Java:
public class Adresse {
				private String FNAME;
				private String VNAME;
				private int PLZ;
				private String ORT;
				private String EMAIL;


	public Adresse (String Vorname, String Nachname, int Postleitzahl, String ort, String Mail){
		FNAME=Vorname;
		VNAME=Nachname;
		PLZ=Postleitzahl;
		ORT=ort;
		EMAIL=Mail;


		
		}

		public String getFNAME(){
			return FNAME;
		}

		public String getVNAME(){
			return VNAME;
		}

		public int getPLZ(){
			return PLZ;
		}


		public String getORT(){
			return ORT;
		}
		
		public String  getEMAIL(){
			return EMAIL;
	  }


public void showAdress(){
		System.out.println("Vorname" +FNAME+ "Nachname" + VNAME +"Postleitzahl" + PLZ + "Ort" + ORT +"Email" + EMAIL);
		}
}

Die CSV sieht so aus:

NR:FNAME:VNAME:TITEL:pLZ:ORT:STRASSE:SEKTION:CANYONING:TELEFON:MOBIL:EMAIL:WEBSITE
739:Adler:Helmut: :6060:Gnadenwald:110:Innsbruck: :05223/48166: : :
1262:Agerer:Manfred: :6522:prutz:313:Westtirol: :05472/2774:0664/3336777:wiegele-europa@tirol.com:


Sorry falls etwas Grottenfalsch ist, aber ich lerne Java erst seit 2 Monaten und hab nur Erfahrung mit C#

Mfg
Illiminator31
 
Zuletzt bearbeitet:

nrg

Top Contributor
das kompiliert doch hinten und vorne nicht :)

erstmal würde ich mich auf die Datenhaltung der CSV-Datei beschränken. Dazu eignet sich z.B. eine Collection mit String-Arrays:

Java:
	List<String[]> csv = new ArrayList<String[]>();
	BufferedReader br = new BufferedReader(new FileReader("adressen.csv"));
	String line = null; // ungarische notation macht kein mensch mehr
	while ((line = br.readLine()) != null) {
		csv.add(line.split(":"));
	}

Danach haste eine Liste von String-Arrays und kannst damit weiterarbeiten.
Aber ich würde dir zunächst ein wenig Fachliteratur empfehlen. Arrays handelt man in java schon etwas anders als in c# > Galileo Computing :: Java ist auch eine Insel – 3.7 Arrays
 
Hy,
ich habe es oben gerade geupdatet.

Ist es so besser?

Habe
String fileReaderLine;
String [] splittArray = fileReaderLine.split(":");

hinzugefügt.
Wo genau muss der Aray rein?.

Wie der Array geht weiß ich ja:

z.B Adresse () [Für den Default Konstruktor] oder Adresse (Name, Vorname) [Mit anderen Konstruktoren]

Mfg
illiminator31
 

nrg

Top Contributor
Hy,
ich habe es oben gerade geupdatet.

Ist es so besser?

hast du ihn auch mal versucht zu kompilieren? für mich machts keinen sinn, dir jetzt jeden kompilierfehler zu erklären. les dir am besten o.g. kapitel zu arrays durch. dann wirste denke die meisten der fehler selber lösen können.

@sidi90: was soll ihm die methode helfen, wenn fundamentals fehlen?
 
Hy,
ich hab mir das mal angeschaut.
Es gibt mir jetzt zumindestmal die CSV aus. Wie ich das jetzt mit dem Splitten mache, werde ich mir nochmal angucken.

Die regionMatches() werde ich mir auch mal anschauen.

Sobald ich das habe, werde ich mich nochmal melden

Mfg
Illiminator31
 
Hallo,
ich habe mir das Kapitel über Arrays durchgelesen. Ich glaube nun es verstanden zu haben.

Leider compiliert er mir den Sourcode immer noch nicht :(.

Hier die "Main" Klasse

[Java]
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;


public class UseBuffedReader {

public void main(String[] args) {

try {

String sCurrentLine;

BufferedReader br = new BufferedReader(new FileReader("adressen.csv"));

while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
}
}
catch (FileNotFoundException e) {

e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}


Adresse neu1 = new Adresse (
splittArray[2],
splittArray[1],
Integer.parseInt(splittArray[4]),
splittArray[5],
splittArray[11] /* Hier wird das Array gesplittet */
);

Adressen = neu1;
(i++;} i--;

boolean gefunden = false; /* Dies ist eine Variabele um einen Fund True oder False zu setzten */

if(arg[0].equals("Vorname"))
{
for(int x=1;x<i;x++)
{
if(Adressen[x].getVorname().equals(arg[1])){
Adressen[x].showAdress();
gefunden = true; /* Hier wird gecheckt, ob das gegebene Argument mit "Vorname" übereinstimmt */

break; }
}
if(!gefunden) {
System.out.println("keine Adresse gefunden!");
}
}

if(arg[0].equals("Nachname")) { /*Überprüfung wie oben */
for(int x=1;x<i;x++) {
if(Adressen[x].getNachname().equals(arg[1])){
Adressen[x].showAdress();
gefunden = true;
break;
}
}
if(!gefunden) {
System.out.println("keine Adresse gefunden!");
}
}
if(arg[0].equals("PLZ")) {
for(int x=1;x<i;x++) {
if(Adressen[x].getPLZ() == Integer.parseInt(arg[1])){
Adressen[x].showAdress();
gefunden = true;
break;
}
}
if(!gefunden) {
System.out.println("keine Adresse gefunden!");
}
}

if(arg[0].equals("Ort")) {
for(int x=1;x<i;x++) {
if(Adressen[x].getOrt().equals(arg[1])){
Adressen[x].showAdress();
gefunden = true;
break;
}
}
if(!gefunden) {
System.out.println("keine Adresse gefunden!");
}
}

if(arg[0].equals("EMail")) {
for(int x=1;x<i;x++) {
if(Adressen[x].getEMail().equals(arg[1])){
Adressen[x].showAdress();
gefunden = true;
break;
}
}
if(!gefunden) {
System.out.println("keine Adresse gefunden!");
}
}
System.out.print(i + " Adressen der adressen.csv");


}
}


/* Ablauf: Das Programm ließt die .csv Zeile für Zeile aus und speichert alles nach dem ; als eigenes Argument.
Nun vergleicht das Programm ob die Ausgelesenen Argumente mit den vom Benutzer gegebenene Argumenten übereinstimmt.
Sollte das Argument übereinstimmen dann wird die Variabele gefunden auf True gesetzt, wenn nicht auf False.
Je nach dem wie jetzt die Variabele steht (True oder False) wird entweder "Keine Adresse gefunden" oder eben die Adresse ausgegeben.
*/

[/code]

Ich habe auch versucht die Struktur des Code einigermaßen richtig hin zu bekommen.

Hier die Adressen Klasse:

[Java]

public class Adresse {
public String vorName;
public String nachName;
public int PLZ;
public String Ort;
public String email;


public Adresse (String vn, String nn, int plz, String ort, String mail){
Vorname=vn;
Nachname=nn;
Plz=plz;
Ort=ort;
email=mail;


}

public String getVorname(){
return Vorname;
}

public String getNachname(){
return Nachname;
}

public int getPLZ(){
return Plz;
}


public String getort(){
return Ort;
}
public String getEmail(){
return email;

}

}
[/Java]


Diese soll die Klasse Adresse darstellen.

Beim Compilieren der Main kommt folgender fehler:

Java:
UseBuffedReader.java:39: ']' expected
                  Adressen[i] = neu1;
                           ^
UseBuffedReader.java:39: ';' expected
                  Adressen[i] = neu1;
                            ^
UseBuffedReader.java:39: <identifier> expected
                  Adressen[i] = neu1;
                                    ^
UseBuffedReader.java:40: illegal start of type
                  (i++;}  i--;
                  ^
UseBuffedReader.java:40: ';' expected
                  (i++;}  i--;
                   ^
UseBuffedReader.java:40: illegal start of type
                  (i++;}  i--;
                    ^
UseBuffedReader.java:40: <identifier> expected
                  (i++;}  i--;
                      ^
UseBuffedReader.java:40: ';' expected
                  (i++;}  i--;
                       ^
UseBuffedReader.java:40: <identifier> expected
                  (i++;}  i--;
                           ^
UseBuffedReader.java:44: illegal start of type
          if(arg[0].equals("Vorname"))
          ^
UseBuffedReader.java:44: ']' expected
          if(arg[0].equals("Vorname"))
                 ^
UseBuffedReader.java:44: ')' expected
          if(arg[0].equals("Vorname"))
                  ^
UseBuffedReader.java:44: ';' expected
          if(arg[0].equals("Vorname"))
                   ^
UseBuffedReader.java:44: invalid method declaration; return type required
          if(arg[0].equals("Vorname"))
                    ^
UseBuffedReader.java:44: illegal start of type
          if(arg[0].equals("Vorname"))
                           ^
UseBuffedReader.java:44: ';' expected
          if(arg[0].equals("Vorname"))
                                     ^
UseBuffedReader.java:59: illegal start of type
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
          ^
UseBuffedReader.java:59: ']' expected
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
                 ^
UseBuffedReader.java:59: ')' expected
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
                  ^
UseBuffedReader.java:59: ';' expected
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
                   ^
UseBuffedReader.java:59: invalid method declaration; return type required
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
                    ^
UseBuffedReader.java:59: illegal start of type
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
                           ^
UseBuffedReader.java:59: ';' expected
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
                                      ^
UseBuffedReader.java:71: illegal start of type
          if(arg[0].equals("PLZ")) {
          ^
UseBuffedReader.java:71: ']' expected
          if(arg[0].equals("PLZ")) {
                 ^
UseBuffedReader.java:71: ')' expected
          if(arg[0].equals("PLZ")) {
                  ^
UseBuffedReader.java:71: ';' expected
          if(arg[0].equals("PLZ")) {
                   ^
UseBuffedReader.java:71: invalid method declaration; return type required
          if(arg[0].equals("PLZ")) {
                    ^
UseBuffedReader.java:71: illegal start of type
          if(arg[0].equals("PLZ")) {
                           ^
UseBuffedReader.java:71: ';' expected
          if(arg[0].equals("PLZ")) {
                                 ^
UseBuffedReader.java:84: illegal start of type
          if(arg[0].equals("Ort")) {
          ^
UseBuffedReader.java:84: ']' expected
          if(arg[0].equals("Ort")) {
                 ^
UseBuffedReader.java:84: ')' expected
          if(arg[0].equals("Ort")) {
                  ^
UseBuffedReader.java:84: ';' expected
          if(arg[0].equals("Ort")) {
                   ^
UseBuffedReader.java:84: invalid method declaration; return type required
          if(arg[0].equals("Ort")) {
                    ^
UseBuffedReader.java:84: illegal start of type
          if(arg[0].equals("Ort")) {
                           ^
UseBuffedReader.java:84: ';' expected
          if(arg[0].equals("Ort")) {
                                 ^
UseBuffedReader.java:97: illegal start of type
          if(arg[0].equals("EMail")) {
          ^
UseBuffedReader.java:97: ']' expected
          if(arg[0].equals("EMail")) {
                 ^
UseBuffedReader.java:97: ')' expected
          if(arg[0].equals("EMail")) {
                  ^
UseBuffedReader.java:97: ';' expected
          if(arg[0].equals("EMail")) {
                   ^
UseBuffedReader.java:97: invalid method declaration; return type required
          if(arg[0].equals("EMail")) {
                    ^
UseBuffedReader.java:97: illegal start of type
          if(arg[0].equals("EMail")) {
                           ^
UseBuffedReader.java:97: ';' expected
          if(arg[0].equals("EMail")) {
                                   ^
UseBuffedReader.java:109: <identifier> expected
          System.out.print(i + " Adressen der adressen.csv");
                          ^
UseBuffedReader.java:109: <identifier> expected
          System.out.print(i + " Adressen der adressen.csv");
                            ^
UseBuffedReader.java:109: ';' expected
          System.out.print(i + " Adressen der adressen.csv");
                              ^
UseBuffedReader.java:109: illegal start of type
          System.out.print(i + " Adressen der adressen.csv");
                                                           ^
UseBuffedReader.java:109: <identifier> expected
          System.out.print(i + " Adressen der adressen.csv");
                                                            ^
UseBuffedReader.java:109: ';' expected
          System.out.print(i + " Adressen der adressen.csv");
                                                             ^

[/Java]

Bei der Adressen Klasse kommt:

[Java]

UseBuffedReader.java:39: ']' expected
                  Adressen[i] = neu1;
                           ^
UseBuffedReader.java:39: ';' expected
                  Adressen[i] = neu1;
                            ^
UseBuffedReader.java:39: <identifier> expected
                  Adressen[i] = neu1;
                                    ^
UseBuffedReader.java:40: illegal start of type
                  (i++;}  i--;
                  ^
UseBuffedReader.java:40: ';' expected
                  (i++;}  i--;
                   ^
UseBuffedReader.java:40: illegal start of type
                  (i++;}  i--;
                    ^
UseBuffedReader.java:40: <identifier> expected
                  (i++;}  i--;
                      ^
UseBuffedReader.java:40: ';' expected
                  (i++;}  i--;
                       ^
UseBuffedReader.java:40: <identifier> expected
                  (i++;}  i--;
                           ^
UseBuffedReader.java:44: illegal start of type
          if(arg[0].equals("Vorname"))
          ^
UseBuffedReader.java:44: ']' expected
          if(arg[0].equals("Vorname"))
                 ^
UseBuffedReader.java:44: ')' expected
          if(arg[0].equals("Vorname"))
                  ^
UseBuffedReader.java:44: ';' expected
          if(arg[0].equals("Vorname"))
                   ^
UseBuffedReader.java:44: invalid method declaration; return type required
          if(arg[0].equals("Vorname"))
                    ^
UseBuffedReader.java:44: illegal start of type
          if(arg[0].equals("Vorname"))
                           ^
UseBuffedReader.java:44: ';' expected
          if(arg[0].equals("Vorname"))
                                     ^
UseBuffedReader.java:59: illegal start of type
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
          ^
UseBuffedReader.java:59: ']' expected
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
                 ^
UseBuffedReader.java:59: ')' expected
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
                  ^
UseBuffedReader.java:59: ';' expected
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
                   ^
UseBuffedReader.java:59: invalid method declaration; return type required
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
                    ^
UseBuffedReader.java:59: illegal start of type
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
                           ^
UseBuffedReader.java:59: ';' expected
          if(arg[0].equals("Nachname")) {                       /*▄berpr³fung wi
e oben */
                                      ^
UseBuffedReader.java:71: illegal start of type
          if(arg[0].equals("PLZ")) {
          ^
UseBuffedReader.java:71: ']' expected
          if(arg[0].equals("PLZ")) {
                 ^
UseBuffedReader.java:71: ')' expected
          if(arg[0].equals("PLZ")) {
                  ^
UseBuffedReader.java:71: ';' expected
          if(arg[0].equals("PLZ")) {
                   ^
UseBuffedReader.java:71: invalid method declaration; return type required
          if(arg[0].equals("PLZ")) {
                    ^
UseBuffedReader.java:71: illegal start of type
          if(arg[0].equals("PLZ")) {
                           ^
UseBuffedReader.java:71: ';' expected
          if(arg[0].equals("PLZ")) {
                                 ^
UseBuffedReader.java:84: illegal start of type
          if(arg[0].equals("Ort")) {
          ^
UseBuffedReader.java:84: ']' expected
          if(arg[0].equals("Ort")) {
                 ^
UseBuffedReader.java:84: ')' expected
          if(arg[0].equals("Ort")) {
                  ^
UseBuffedReader.java:84: ';' expected
          if(arg[0].equals("Ort")) {
                   ^
UseBuffedReader.java:84: invalid method declaration; return type required
          if(arg[0].equals("Ort")) {
                    ^
UseBuffedReader.java:84: illegal start of type
          if(arg[0].equals("Ort")) {
                           ^
UseBuffedReader.java:84: ';' expected
          if(arg[0].equals("Ort")) {
                                 ^
UseBuffedReader.java:97: illegal start of type
          if(arg[0].equals("EMail")) {
          ^
UseBuffedReader.java:97: ']' expected
          if(arg[0].equals("EMail")) {
                 ^
UseBuffedReader.java:97: ')' expected
          if(arg[0].equals("EMail")) {
                  ^
UseBuffedReader.java:97: ';' expected
          if(arg[0].equals("EMail")) {
                   ^
UseBuffedReader.java:97: invalid method declaration; return type required
          if(arg[0].equals("EMail")) {
                    ^
UseBuffedReader.java:97: illegal start of type
          if(arg[0].equals("EMail")) {
                           ^
UseBuffedReader.java:97: ';' expected
          if(arg[0].equals("EMail")) {
                                   ^
UseBuffedReader.java:109: <identifier> expected
          System.out.print(i + " Adressen der adressen.csv");
                          ^
UseBuffedReader.java:109: <identifier> expected
          System.out.print(i + " Adressen der adressen.csv");
                            ^
UseBuffedReader.java:109: ';' expected
          System.out.print(i + " Adressen der adressen.csv");
                              ^
UseBuffedReader.java:109: illegal start of type
          System.out.print(i + " Adressen der adressen.csv");
                                                           ^
UseBuffedReader.java:109: <identifier> expected
          System.out.print(i + " Adressen der adressen.csv");
                                                            ^
UseBuffedReader.java:109: ';' expected
          System.out.print(i + " Adressen der adressen.csv");
                                                             ^

[/Java]

Mfg
Illiminator31
 

jgh

Top Contributor
du benutzt eclipse, dann sollte dein Klasse "Adresse" ja ähnlich wie auf diesem Bild aussehen:

wenn du auf diesen kleinen roten Kreuze am Rande klickst, gibt er dir sogar Vorschläge, was zu tun ist...

nur mal so als Tipp am Rande:
Code:
Vorname != vorName
 
du benutzt eclipse, dann sollte dein Klasse "Adresse" ja ähnlich wie auf diesem Bild aussehen:

wenn du auf diesen kleinen roten Kreuze am Rande klickst, gibt er dir sogar Vorschläge, was zu tun ist...

nur mal so als Tipp am Rande:
Code:
Vorname != vorName


Hy,
ich benutze die Eclipse IDE nicht mehr. Ich Programmiere mit Notepad++, da ich folgendes Problem habe:

An dem System wo ich Arbeite werden die Projekte die ich mit Eclipse erstelle nicht gespeichert, d.h er fragt jedesmal nach dem Workspace.
Dieser wird immer gelöscht und ich muss den Kompletten Source Code wieder in ein neuen Projekt Packen, was mich extrem nervt.
Deshalb bin ich jetzt dazu übergegangen den Source Code mit Notepad++ zu schreiben, da mir das bei c und c++ auch relativ hilfreich ist.

Auf solche sachen wie die Fehleranzeige muss ich da leider verzichten.


Ich hab mir aber nochmal die mühe gemacht und den Sourcecode in Eclipse kopiert.

Versuche mal die Fehler zu korrigieren, auch wenn mir Eclipse bei 90% der Fehler keinen brauchbaren Vorschlag sondern nur mist ausgibt (oder gar nichts).

Mfg
Illiminator31

EDIT: Was soll ich z.b mit dem Anfangen: "Syntax error on tokens, AnnotationName expected instead".
oder "Syntax error on token "try", invalid InterfaceHeader"?
 
Zuletzt bearbeitet:

nrg

Top Contributor
würde halt den workspace einfach auf einem "nicht-flüchtigen" platz einstellen. z.b. eine partition o.ä.. kann ja sein, dass du in einer domäne arbeitest, wo userproflie bereinigt werden oder sowas in der art.

zu dem code: auch wenns hart klingt aber ich sehe wenig sinn darin, mit dem rotstift drüber zu gehen (vllt macht sich ja ein anderer die mühe). wenn du das dringend brauchst, macht dir das jemand bestimmt entgeldlich. wenn das nur eine übungsaufgabe ist, such dir erst mal leichtere übungen ;)
 
Hy,
nach der Überarbeitung sieht der Code wie folgt aus:

[Java]
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;






public class UseBufferedReader {

public void main(String[] args) {
int i = 0;
Adresse[] Adressen = new Adresse[1000];
try {
String fileName = "C:\\java\\4\\adressen.csv";

try {

String sCurrentLine;

BufferedReader br = new BufferedReader(new FileReader("adressen.csv"));

while ((sCurrentLine = br.readLine()) != null) {
if(i>0){
String[] splittArray = FileReaderLine.split(":");
}
}
}
catch (FileNotFoundException e) {

e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}




Adresse neu1 = new Adresse (
splittArray[2],
splittArray[1],
Integer.parseInt(splittArray[4]),
splittArray[5],
splittArray[11] /* Hier wird das Array gesplittet */

);

Adressen = neu1;
(i++}; i--;

boolean gefunden = false; /* Dies ist eine Variabele um einen Fund True oder False zu setzten */

if(arg[0].equals("Vorname"))
{
for(int x=1;x<i;x++)
{
if(Adressen[x].getVorname().equals(arg[1])){
Adressen[x].showAdress();
gefunden = true; /* Hier wird gecheckt, ob das gegebene Argument mit "Vorname" übereinstimmt */

break; }
}
if(!gefunden) {
System.out.println("keine Adresse gefunden!");
}
}

if(arg[0].equals("Nachname")) { /*Überprüfung wie oben */
for(int x=1;x<i;x++) {
if(Adressen[x].getNachname().equals(arg[1])){
Adressen[x].showAdress();
gefunden = true;
break;
}
}
if(!gefunden) {
System.out.println("keine Adresse gefunden!");
}
}
if(arg[0].equals("PLZ")) {
for(int x=1;x<i;x++) {
if(Adressen[x].getPLZ() == Integer.parseInt(arg[1])){
Adressen[x].showAdress();
gefunden = true;
break;
}
}
if(!gefunden) {
System.out.println("keine Adresse gefunden!");
}
}

if(arg[0].equals("Ort")) {
for(int x=1;x<i;x++) {
if(Adressen[x].getOrt().equals(args[1])){
Adressen[x].showAdress();
gefunden = true;
break;
}
}
if(!gefunden) {
System.out.println("keine Adresse gefunden!");
}
}

if(arg[0].equals("EMail")) {
for(int x=1;x<i;x++) {
if(Adressen[x].getEMail().equals(args[1])){
Adressen[x].showAdress();
gefunden = true;
break;
}
}
if(!gefunden) {
System.out.println("keine Adresse gefunden!");
}
}
System.out.print(i + " Adressen der adressen.csv");
}
}




/* Ablauf: Das Programm ließt die .csv Zeile für Zeile aus und speichert alles nach dem ; als eigenes Argument.
Nun vergleicht das Programm ob die Ausgelesenen Argumente mit den vom Benutzer gegebenene Argumenten übereinstimmt.
Sollte das Argument übereinstimmen dann wird die Variabele gefunden auf True gesetzt, wenn nicht auf False.
Je nach dem wie jetzt die Variabele steht (True oder False) wird entweder "Keine Adresse gefunden" oder eben die Adresse ausgegeben.
*/

[/Java]

Eclipse hat folgende Errors noch, die ich aber nicht gelöst bekomme:

Code:
Severity and Description	Path		Location	Creation Time	Id
FileReaderLine cannot be resolved		UseBufferedReader.java	line 27	1306149720588	288

splittArray cannot be resolved		UseBufferedReader.java	line 43	1306149720588	289

splittArray cannot be resolved		UseBufferedReader.java	line 44	1306149720588	290

splittArray cannot be resolved		UseBufferedReader.java	line 45	1306149720588	291

splittArray cannot be resolved		UseBufferedReader.java	line 46	1306149720588	292

splittArray cannot be resolved		UseBufferedReader.java	line 47	1306149720588	293

Syntax error, insert ")" to complete Expression		UseBufferedReader.java	line 52	1306149720588	294

Syntax error, insert "}" to complete Block	AFG4neu	UseBufferedReader.java	line 121	1306149720588	296

Syntax error, insert "AssignmentOperator Expression" to complete Expression	UseBufferedReader.java	line 52	1306149720588	295

Syntax error, insert "Finally" to complete TryStatement	AFG4neu	UseBufferedReader.java	line 121	1306149720588	297

1) Wiso kann er SplittArray richt resolven?. Ich habe es doch hier angegeben:
String[] splittArray = FileReaderLine.split(":");

2) Line 52, was ist da falsch?. Was ist den AssignmentOperator Expression?
Laut google soll ich da einen Try / Catch block machen, was ich aber oben ja habe.

Mfg
Illiminator31
 

jgh

Top Contributor
1) Wiso kann er SplittArray richt resolven?. Ich habe es doch hier angegeben:
String[] splittArray = FileReaderLine.split(":");
Java:
  while ((sCurrentLine = br.readLine()) != null) {
                if(i>0){
                    String[] splittArray = FileReaderLine.split(":");
                } 
                }
Du deklariest und initialisierst das [c]splitArray[/c] in einem If-Block! Dort, und auch nur dort ist es sichtbar!!!
=> Lösung: Vor der Main-Methode deklarieren, in der if-Verzweigung initalisieren!


2) Line 52, was ist da falsch?. Was ist den AssignmentOperator Expression?
Laut google soll ich da einen Try / Catch block machen, was ich aber oben ja habe.
was soll das denn bedeuten:
[java=52](i++}; i--; [/code]
Du bist weder in einer for-, noch while Schleife...und warum runde Klammer auf, geschweifte zu?
erst ++, dann -- ...so macht das wenig Sinn!
 
Hy,
ich hab mir gestern nochmal den Teil mit den Kontrollstrukturen bei Java angesehen.

Jetzt geht das Programm :D.

[Java]
import java.io.*;


public class UseBufferedReader {

public static void main(String[] arg) throws IOException {

boolean gefunden = false;
try {

BufferedReader bufferedReader = new BufferedReader(new FileReader("adressen.csv"));
String fileReaderLine = bufferedReader.readLine();


while ((fileReaderLine = bufferedReader.readLine()) != null) {

String[] splittArray = fileReaderLine.split(":");
Adresse neu1 = new Adresse (splittArray[2],splittArray[1],Integer.parseInt(splittArray[4]),splittArray[5],splittArray[11]);



if(arg[0].equals("Vorname")) {

if(neu1.getVorname().equals(arg[1])){
neu1.showAdress();
gefunden = true;
break;
}
}else if(arg[0].equals("Nachname")) {

if(neu1.getNachname().equals(arg[1])){
neu1.showAdress();
gefunden = true;
break;
}
}




else if(arg[0].equals("PLZ")) {

if(neu1.getPLZ() == Integer.parseInt(arg[1])){
neu1.showAdress();
gefunden = true;
break;
}
}



else if(arg[0].equals("Ort")) {

if(neu1.getOrt().equals(arg[1])){
neu1.showAdress();
gefunden = true;
break;
}
}



else if(arg[0].equals("EMail")) {

if (neu1.getEmail().equals(arg[1])){
neu1.showAdress();
gefunden = true;
break;

}
}






}
}
catch (Exception e) {
System.out.println("fehler beim dateieinlesen:" + e);
}
if (gefunden == false){
System.out.println("Keine Adresse");
}
BufferedReader Reader1 = new BufferedReader(new FileReader("adressen.csv"));
String fileReaderLine = Reader1.readLine();
int count = 0;
while ((fileReaderLine = Reader1.readLine()) != null) {
count++;

}System.out.println(count + " Adressen in der adressen.csv");
}
}

[/Java]

Adressen Klasse

[Java]
public class Adresse {
public String Vorname;
public String Nachname;
public int PLZ;
public String Ort;
public String email;


public Adresse (String vn, String nn, int plz, String ort, String Email){
Vorname=vn;
Nachname=nn;
PLZ=plz;
Ort=ort;
email=Email;


}

public String getVorname(){
return Vorname;
}

public String getNachname(){
return Nachname;
}

public int getPLZ(){
return PLZ;
}


public String getOrt(){
return Ort;
}
public String getEmail(){
return email;

}

public void showAdress(){
System.out.println ("Vorname:"+Vorname+"Nachname:"+Nachname+"PLZ:"+PLZ+"Ort:"+Ort+"Email:"+email);
}
}
[/Java]

Zur Erklärung was das mit den I++ und -- sollte.
Ich wollte einen Zähler einbauen, der mir dann noch anzeigt, wieviele Adressen ich den in der Adressen csv habe.
Mir ist dann aber aufgefallen, das

[Java]
BufferedReader Reader1 = new BufferedReader(new FileReader("adressen.csv"));
String fileReaderLine = Reader1.readLine();
int count = 0;
while ((fileReaderLine = Reader1.readLine()) != null) {
count++;

}System.out.println(count + " Adressen in der adressen.csv");
}
[/Java]

doch einfacher ist, als einen i++ Counter zu machen, der dann im code verstreut ist.

Jetzt abschließend die Frage, gibt es irgendwo die Gefahr einer exception?.
Also eine Schwachstelle bei der ich evtl. Probleme kriegen könnte?

Mfg
Illiminator31


Mfg
Illiminator31
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
T array auslesen Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
D Eclipse will nicht auslesen Java Basics - Anfänger-Themen 6
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
U Sekunden von LocalTime auslesen, wie möglich? Java Basics - Anfänger-Themen 1
E Outlook ordner auslesen Java Basics - Anfänger-Themen 4
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
J Jsonfile auslesen Java Basics - Anfänger-Themen 8
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
J Json Datei auslesen Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N JTable auslesen Java Basics - Anfänger-Themen 6
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D XML von Seite auslesen Jsoup Java Basics - Anfänger-Themen 2
I Druckerauflösung auslesen - mittlerweile möglich? Java Basics - Anfänger-Themen 4
B WSDL auslesen? Java Basics - Anfänger-Themen 8
D Methoden Textdokument erstellen und auslesen. Java Basics - Anfänger-Themen 46
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
S CSV auslesen UTF-8 Problem Java Basics - Anfänger-Themen 7
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
x-tshainge Interface Wie kann ich aus Textfeldern auslesen Java Basics - Anfänger-Themen 6
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
B .txt. Datei auslesen und bestimmten Wert wiedergeben Java Basics - Anfänger-Themen 5
CptK x wert eines Bildes auslesen Java Basics - Anfänger-Themen 1
T Website auslesen Java Basics - Anfänger-Themen 2
T String auslesen bzw. überprüfen Java Basics - Anfänger-Themen 1
L CSV Auslesen Java Basics - Anfänger-Themen 5
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
F Zwischenwerte aus Browser auslesen Java Basics - Anfänger-Themen 19
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
J Hashmap auslesen Java Basics - Anfänger-Themen 7
J Auslesen/speichern und wieder einlesen Java Basics - Anfänger-Themen 7
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Variablen Zahlen aus Strings auslesen Java Basics - Anfänger-Themen 4
J Informationen aus Webseiten auslesen Java Basics - Anfänger-Themen 1
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
dragonfight86 Erste Schritte OpenDocument auslesen Java Basics - Anfänger-Themen 13
I Texte mit Absätzen in Dateien speichern und auslesen Java Basics - Anfänger-Themen 1
W DNS Name auslesen + weitere Anfängerfrage Java Basics - Anfänger-Themen 4
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
Chrizzey45 Calc-Dokument in Java auslesen? Java Basics - Anfänger-Themen 2
B Datei auslesen und 2D-Array anlegen Java Basics - Anfänger-Themen 1
B Key auslesen/ausgeben innerhalb von foreach() Java Basics - Anfänger-Themen 5
M Eigenschaften einer Datei auslesen Java Basics - Anfänger-Themen 5
M Textarea auslesen und beschreiben Java Basics - Anfänger-Themen 8
JokerBlacky Klassen Klasse Queue Klasse mit Attributen anhängen und auslesen können Java Basics - Anfänger-Themen 4
Y Bildschirmauflösung auslesen Java Basics - Anfänger-Themen 4
S for schleife auslesen Java Basics - Anfänger-Themen 4
Voreck String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 9
Voreck Array aus txt datei auslesen Java Basics - Anfänger-Themen 2
N JFreeChart --> TimeSeries auslesen Java Basics - Anfänger-Themen 9
OlafHD Datei Auslesen Java Basics - Anfänger-Themen 6
M Metadaten OpenOffice mit Java auslesen Java Basics - Anfänger-Themen 9
P JList, aus selectedValue bestimmten Wert aus Containerklasse auslesen Java Basics - Anfänger-Themen 4
J OpenOffice Dokumentenvariable mit Java auslesen Java Basics - Anfänger-Themen 1
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
T Combobox Wert auslesen und damit weiterrechnen Java Basics - Anfänger-Themen 6
J Datei auslesen klappt nicht Java Basics - Anfänger-Themen 4
D String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 5
Viktim Website auslesen Java Basics - Anfänger-Themen 8
T Auslesen mehrerer jComboBox (-en) Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben