ich moechte in einem Programm die Werte der Variable vom Typ der Klasse JTextArea in einer Datei.dat der Klasse RandomAcessFile speichern, leider gelingt es mir nicht.
Das Programm ist ganz einfach aufgebaut. In einem Editor wird ein String eingegeben, dieser wird in einer Variable vom Typ JTextArea abgelegt, wenn auf ein Button gedrueckt wird, sollen die Werte dieser Variable in einer Datei datei.dat der Klasse RandomAcessFile dauerhaft gespeichert werden. Wie man Editor und Buttons erstellt, ist mir bekannt, ich scheitere an dem Vorgang wo man die Werte der Variable in der Datei ablegt.
Java:
......privateJTextArea feld;........privatevoiddateiSchreiben(){try{RandomAccessFile datei =newRandomAccessFile("datei.dat","rw");
datei.writeUTF(feld.toString());
datei.close();}catch(IOException e ){JOptionPane.showMessageDialog(this,"Problem aufgetreten");}}
Willst du den Inhalt der JTextArea speichern?
Da kommst du mit der Methode getText() ran, toString() liefert dir lediglich eine Stringrepräsentation des Objekts.
Willst du den Inhalt der JTextArea speichern?
Da kommst du mit der Methode getText() ran, toString() liefert dir lediglich eine Stringrepräsentation des Objekts.
privatevoiddateiSchreiben(){try{RandomAccessFile datei =newRandomAccessFile("datei.dat","rw");
datei.writeUTF(feld.getText());System.out.println(feld.getText());
datei.close();}catch(IOException e ){JOptionPane.showMessageDialog(this,"Problem aufgetreten");}}
Scheint schon etwas besser zu sein,
aber wenn ich es es wieder einlese um zu schauen, ob die Werte auch gespeichert wurden, bekomme ich nichts zurueck, vielleicht liegt es aber an der Methode zum Einlesen????:bahnhof:
Java:
privatevoiddateiLesen(){try{RandomAccessFile datei =newRandomAccessFile("datei.dat","r");
datei.read();
datei.close();}catch(IOException e ){JOptionPane.showMessageDialog(this,"Problem aufgetreten");}}
Vielleicht mache ich hier etwas falsch????:bahnhof:
Hast du dir mal die Datei angeschaut? Steht da alles richtig drin?
Zum einlesen:
Du rufst da einfach mal so read() auf, ohne auch nur irgendwas mit der Rückgabe zu machen.
Schau in die API welche Methoden die Klasse bereitstellt, was die einzelnen Methoden machen und zurückgeben. Dann solltest du den Fehler schnell finden.
Hast du dir mal die Datei angeschaut? Steht da alles richtig drin?
Zum einlesen:
Du rufst da einfach mal so read() auf, ohne auch nur irgendwas mit der Rückgabe zu machen.
Schau in die API welche Methoden die Klasse bereitstellt, was die einzelnen Methoden machen und zurückgeben. Dann solltest du den Fehler schnell finden.
Ja in der Datei habe ich geschaut, steht alles richtig drin, nur wenn ich das Programm wieder starte und neue Werte dazuspeichere, dann werden die alten Werte ueberschrieben , oder geloescht. Dies soll natuerlich auch nicht sein.
Die API bietet fuer Texte readUTF()-Methode an, habe ausprobiert, aber keine Reaktion, vielleicht schon zu spaet???:bahnhof:
So weit so gut, nun wie kann ich noch das Problem mit Uberschreiben der Datei beheben???:bahnhof:
Wenn in der Datei etwas gespeichert ist und ich starte das Programm neu und gebe im Editor etwas ein
und klicke auf Button zum Speichern, dann werden die alten Daten geloescht in der Datei bzw. ueberschrieben, ich moechte aber dass die neuen Daten dazugeschrieben werden, wie geht das ????:bahnhof: