Schönen guten Morgen,
ich speichere für einen Login Prozess in einem Stundenplaner UserDaten in einer .txt Datei ab. Ich gebe auch die Möglichkeiten diese zu ändern, jedoch habe ich das Problem, dass ich, wenn ich möchte, dass nur ein Teil der Daten geändert werden möchte, die restlichen aus der Txt Datei einfach rausgelöscht werden, anstatt das sie den alten Wert behalten. Wie kann ich das ändern?
Hier der relevante Code
und in dem GUI fenster
ich speichere für einen Login Prozess in einem Stundenplaner UserDaten in einer .txt Datei ab. Ich gebe auch die Möglichkeiten diese zu ändern, jedoch habe ich das Problem, dass ich, wenn ich möchte, dass nur ein Teil der Daten geändert werden möchte, die restlichen aus der Txt Datei einfach rausgelöscht werden, anstatt das sie den alten Wert behalten. Wie kann ich das ändern?
Hier der relevante Code
Java:
public static void bearbeitenBenutzer(String userName, String[] daten)
throws IOException {
ArrayList<String> userDaten = new ArrayList<String>();
String inhaltVonDatei;
int arrayGroesse;
String passwort = daten[0];
String studiengang = daten[1];
String ects = daten[2];
File datei = new File(userName + ".txt");
BufferedReader read = new BufferedReader(new FileReader(datei));
while ((inhaltVonDatei = read.readLine()) != null) {
userDaten.add(inhaltVonDatei);
}
userDaten.set(1, passwort);
userDaten.set(2, studiengang);
userDaten.set(3, ects);
arrayGroesse = userDaten.size();
// true damit der Text angehängt wird, false(oder ohne)
// wird die Datei komplett überschrieben
FileWriter write = new FileWriter(userName
+ ".txt", false);
for (int a = 0; a < arrayGroesse; a++) {
write.write(userDaten.get(a));
write.append(System.getProperty("line.separator"));
}
read.close();
write.close();
}
und in dem GUI fenster
Java:
btnSpeichern.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
String[] daten = new String[4];
daten[0] = txtNeuPasswort.getText();
daten[1] = txtNeuStudiengang.getText();
daten[2] = txtNeuECTS.getText();
daten[3] = txtNeuPasswortNochmal.getText();
AktuelleSitzung.
getBenutzer();
try {
UserVerwaltung.bearbeitenBenutzer(
Benutzer.getUserName(), daten);
} catch (IOException exc) {
// TODO Auto-generated catch block
exc.printStackTrace();
}
AktuelleSitzung.getAktuelleSitzung();
if (!daten[1].isEmpty()) {
AktuelleSitzung.getBenutzer().setStudiengang(daten[1]);
}
if (!daten[2].isEmpty()) {
AktuelleSitzung.getBenutzer().setEcts(daten[2]);
}
if (!daten[0].isEmpty() && !daten[3].isEmpty()
&& daten[0].equals(daten[3])) {
AktuelleSitzung.getBenutzer().setPasswort(daten[0]);
}
dispose();
}
});