ich habe ein Programm geschrieben, welches 3 Textfelder hat und diese werden wie folgt in eine Txt-Datei gespeichert:
Inhalt1,Inhalt2,Inhalt3
Folgenden Code, habe ich hierfür verwendet:
try {
writer = new FileWriter(file ,true);
writer.write(Textfield_1.getText() + "," + Textfield_2.getText() + "," + Textfield_3.getText());
writer.write(System.getProperty("line.separator"));
writer.flush();
writer.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}```
Das klappt alles Super!
Jetzt möchte ich gerne die Txt-Datei wieder einlesen und die Daten in den 3 Textfeldern wieder anzeigen lassen.
Und ich würde gerne mit 2 weiteren Button, alle Daten anzeigen lassen. Button(vorheriger Datensatz, nächster Datensatz)
Ist das möglich? Wenn ja wie?
Könnt Ihr mir da evtl ein Code Schnipsel geben?
Vielen Dank!
Mit freundlichen Grüßen
jFr
also ich hab dir mal nen kurzes Beispiel runtergeschrieben ist nicht optimal aber daraus solltest etwas für dich ableiten können:
Ich lese erst mal alle Daten des Files ein und dabei wird pro List- Eintrag jeweils ein Array mit Wert 1,2 und 3 gespeichert, welche durch das Komma getrennt waren.
Nun hast du alle Werte in deiner Liste und kannst damit machen was du willst
try {
br = new BufferedReader(new FileReader(new File("MeineDatei.txt")));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
char[] inhalt = new char[(int)(new File("MeineDatei.txt").length())];
try {
int read = br.read(inhalt);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String text = new String(inhalt);
String text1 = new String(inhalt);
//Trennzeichen
String[] split = text1.split(",");
/*(JTextField)*/ tf1.setText(split[0]);
tf2.setText(split[1]);
tf3.setText(split[2]);```
Habt ihr evtl. einen Lösungsansatz für die Button "vorherige Datensätze" & "nächster Datensatz" ?
Ich möchte damit zwischen den einzelnen gespeicherten Datensätze in der Txt-Datei wechseln können.
Diese sind immer mit einem "line.separator" versehen.
Inhalte der Datei sieht wie folgt aus:
Inhalt1,Inhalt2,Inhalt3
Inhalt1,Inhalt2,Inhalt3
Inhalt1,Inhalt2,Inhalt3
Inhalt1,Inhalt2,Inhalt3
Ich blick nicht so ganz durch. Du hast jetzt einen Datensatz, zB [abc] [def] [ghi] oder nicht? Dann doch einfach 2 Buttons hinzufügen. Ein JTextfield wo der aktuelle daten-
satz angezeigt wird, also setText(daten[position]). der eine button macht dann position-- der andere position++ und den text neu setzen.
Oder hab ich was falsch verstanden?
[quote=AnfJava]Ich möchte damit zwischen den einzelnen gespeicherten Datensätze in der Txt-Datei wechseln können.[/quote]Der einfachste Weg ist, nicht nur einen (den ersten) Datensatz einzulesen sondern alle. Dies behält man dann ein eienr geeigneten Datenstruktur im Speicher, dem Model. Wie meist ist Das Model auch in Deinem Fall eine Liste, deren Einträge einen Datensatz darstellen. Das kann eine Liste sein, besser ist aber, eine eigene Klasse zu erstellen, die die einzelnen Daten aufnimmt.
Was Du dann noch benötigst wirde schon gesagt: Du brauchst 2 Buttons. Einder erhöht den Zeiger auf den aktuellen Listeneintra, der ander verringert ihn. dann muss der Eintrag an dem neuen Index noch in die Anzeigefelder üvbernommen werden…