Hallo Zusammen,
ich programmiere gerade eine Studentenverwaltung. In dieser erstelle, speichere, update... ich halt Studenten.
Das ganze in Verbindung mit einer CSV-Datei.
Beim Erstellen und speichern in die CSV-Datei eines Studenten funktioniert alles, jedoch kann ich diese nicht mehr aus der Liste löschen.
Also remove funktioniert da nicht. Ich denke es liegt irgendwo in der Logik, aber ich kann keinen Fehler entdecken. Vielleicht seht ihr ja woran es liegt.
Die Schleife in der Methode, die die Studenten aus der Liste löschen soll und dann eben auch aus der CSV-Datei nutzt die
Matrikelnummer, weil diese eindeutig ist und nicht verändert werden kann.
Danke schonmal für euren Input
ich programmiere gerade eine Studentenverwaltung. In dieser erstelle, speichere, update... ich halt Studenten.
Das ganze in Verbindung mit einer CSV-Datei.
Beim Erstellen und speichern in die CSV-Datei eines Studenten funktioniert alles, jedoch kann ich diese nicht mehr aus der Liste löschen.
Also remove funktioniert da nicht. Ich denke es liegt irgendwo in der Logik, aber ich kann keinen Fehler entdecken. Vielleicht seht ihr ja woran es liegt.
Java:
//PrintWriter Mehtode
public void schreibeInListe() {
String fileName = "resource/Studentenverwaltungdokument.csv";
writer = null;
try {
writer = new PrintWriter(new FileOutputStream(new File(fileName),true));
} catch (FileNotFoundException e ) {
e.printStackTrace();
}
writer.print(liste);
writer.println(); //Zeilenumbruch
writer.flush();
writer.close();
}
//Create
public void studentErzeugen( ) {
String name;
String vorname;
int matrikelnummer;
String studiengang;
int semesterzahl;
String gebDatum;
System.out.println("Name: ");
name = linescan.nextLine();
System.out.println("Vorname: ");
vorname= linescan.nextLine();
System.out.println("Matrikelnummer: ");
matrikelnummer = numberscan.nextInt();
System.out.println("Studiengang: ");
studiengang = linescan.nextLine();
System.out.println("Semesterzahl: ");
semesterzahl = numberscan.nextInt();
System.out.println("Geboren am: ");
gebDatum = linescan.nextLine();
Student studie = new Student(name, vorname, matrikelnummer, studiengang, semesterzahl, gebDatum);
liste.add(studie);
schreibeInListe();
}
//Delete
public void löscheStudent() {
System.out.println("Geben Sie die Matrikelnummer des Studenten ein: ");
int matrikelnummerDesStudenten = numberscan.nextInt();
for (int i = 0; i < liste.size(); i++) {
if(liste.get(i).getMatrikelnummer() == matrikelnummerDesStudenten) { // sucht den Studenten in der Liste
liste.remove(i); // entfernt den Studenten aus der Liste (Verwaltung)
}
}
schreibeInListe();
}
Die Schleife in der Methode, die die Studenten aus der Liste löschen soll und dann eben auch aus der CSV-Datei nutzt die
Matrikelnummer, weil diese eindeutig ist und nicht verändert werden kann.
Danke schonmal für euren Input