Hallo,
ich bin komplett neu hier und auch ein Anfänger was das programmieren in Java angeht. Ich bin auf einem TG und in der Schule machen wir gerade die 3-Schichten-Architektur/Vererbung etc. (Nur so mal als Hintergrund)
Ich habe versucht ein Mini-login Fenster zu schreiben - bzw. Registrierung. Man kann auf einen Button klicken "Account erstellen", wann erscheint ein Fenster indem man den Namen und das Passwort eingeben kann. Das soll wiederrum in einer einfachen .txt Datei eingespeichert werden und zwar UNTEREINANDER.
Wenn man ein weiteres mal auf Account erstellen geht, soll die vorhandene Datei überschrieben werden und der neue User unter dem ersten eingetragen werden.
Nun mein eigentliches Problem: Datei wird mit dem ersten Account erstellt - alles cool. Wenn man ein 2tes Account erstellt wird auch dieser zu der Datei hinzugefügt, allerdings hinter dem Vorhandenem, d.h in einer Zeile. Weitere Accounts ebenso. Ich habe versucht mit einfachem "\n" - ging nicht, genauso wie bw.newline funktionierte ebenso nicht. Ich habe auch mit dem PrintWriter versucht "println.()" einzufügen - ist mir leider auch nicht gelungen..und ja sehr wahrscheinlich habe ich was falsch geschrieben...an der falschen Stelle, sonst was.
Mein Quellcode (Ja ich weiss es, sieht sehr wahrscheinlich für Profis sehr schäußlich aus, aber ich fange ja erst an, nimmts mir nicht übel^^):
Danke schon mal für Antworten!
Ahh bitte beachtet die If drumherum nicht, ist erstmal nur der Ansatz, wird später benötigt, es geht mir nur erstmal darum dass das einfach nur vorerst funktioniert, sodass ich weiter arbeiten kann, später kommts in verschiedene Klassen etc.
Edit2: Wenn ich außerdem ein 2tes Account erstelle, bekomm ich am Ende in der txt Datei "null" :/
ich bin komplett neu hier und auch ein Anfänger was das programmieren in Java angeht. Ich bin auf einem TG und in der Schule machen wir gerade die 3-Schichten-Architektur/Vererbung etc. (Nur so mal als Hintergrund)
Ich habe versucht ein Mini-login Fenster zu schreiben - bzw. Registrierung. Man kann auf einen Button klicken "Account erstellen", wann erscheint ein Fenster indem man den Namen und das Passwort eingeben kann. Das soll wiederrum in einer einfachen .txt Datei eingespeichert werden und zwar UNTEREINANDER.
Wenn man ein weiteres mal auf Account erstellen geht, soll die vorhandene Datei überschrieben werden und der neue User unter dem ersten eingetragen werden.
Nun mein eigentliches Problem: Datei wird mit dem ersten Account erstellt - alles cool. Wenn man ein 2tes Account erstellt wird auch dieser zu der Datei hinzugefügt, allerdings hinter dem Vorhandenem, d.h in einer Zeile. Weitere Accounts ebenso. Ich habe versucht mit einfachem "\n" - ging nicht, genauso wie bw.newline funktionierte ebenso nicht. Ich habe auch mit dem PrintWriter versucht "println.()" einzufügen - ist mir leider auch nicht gelungen..und ja sehr wahrscheinlich habe ich was falsch geschrieben...an der falschen Stelle, sonst was.
Mein Quellcode (Ja ich weiss es, sieht sehr wahrscheinlich für Profis sehr schäußlich aus, aber ich fange ja erst an, nimmts mir nicht übel^^):
Java:
String name = txt3.getText();
String passwort = txt4.getText();
if (true) {
try {
File file = new File("E:/Users/Damian/Desktop/User.txt");
if (!file.exists()) {
file.createNewFile();
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String content = (name+" "+passwort+"\n");
//javax.swing.JOptionPane.showMessageDialog(this,"Der Name existiert bereits!");
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
br.close();
javax.swing.JOptionPane.showMessageDialog(this,"Account erfolgreich erstellt!"+"\n"+"Name: "+name+"\n"+"Passwort: "+passwort);
} else {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String content2;
String content = (name+" "+passwort);
//Solange zeile für zeile die Datei auslesen bis die Datei zu ende ist
while((content2=br.readLine())!= null){
content += content2;
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content+content2);
bw.close();
br.close();
javax.swing.JOptionPane.showMessageDialog(this,"Account erfolgreich erstellt!"+"\n"+"Name: "+name+"\n"+"Passwort: "+passwort);
}
} catch (IOException e) {
e.printStackTrace();
}
}
Danke schon mal für Antworten!
Ahh bitte beachtet die If drumherum nicht, ist erstmal nur der Ansatz, wird später benötigt, es geht mir nur erstmal darum dass das einfach nur vorerst funktioniert, sodass ich weiter arbeiten kann, später kommts in verschiedene Klassen etc.
Edit2: Wenn ich außerdem ein 2tes Account erstelle, bekomm ich am Ende in der txt Datei "null" :/
Zuletzt bearbeitet: