2016-06-10 5 views
0

Was ich versuche, ist ein Datensatz in eine neue Zeile in meiner Textdatei schreiben. Jedes Mal, wenn jemand auf mein Programm klickt, möchte ich eine Methode aufrufen, die eine Datei öffnet und einen Datensatz hinzufügt. Das ist, was ich habe jetzt:Neue Zeile in Lesedatei von Benutzereingabe

die Datei zu öffnen:

try { 
    l = new Formatter("chineses.txt"); 
    System.out.println("Did create"); 
} catch (Exception e){ 
    System.out.println("Did not create"); 
} 

den Datensatz hinzufügen:

public void addRecord(){ 
    l.format("%s", nameField.getText()); 
} 

Jedes Mal, wenn ich in das Namensfeld einen Namen setzen, und klicken Sie registrieren in meiner GUI ersetzt es immer, was in der ersten Zeile in der Textdatei steht. Wie kann ich es in die zweite Zeile schreiben lassen, während ich behalte was in der ersten Zeile steht?

+0

Haben Sie darüber nachgedacht, zu ändern, wie Sie über Ihren Problembereich gehen? Dies wäre eine ausgezeichnete Verwendung von Javas Built in API namens Properties. [Eigenschaften Java-API] (https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html), [Beispiele für Java-Eigenschaften] (http://www.mkyong.com/java/java-properties-file-examples /) Das wird dein Wort um einiges vereinfachen! Du könntest sie auf verschiedene Arten benutzen! Erstellen Sie sogar eine Klasse, die die Übersetzung von der Klasse in Eigenschaften für Sie übernimmt! – Underbalanced

+0

Warum nicht einen PrintWriter mit Append verwenden? –

Antwort

0

Haben Sie darüber nachgedacht, RandomAccessFile zu verwenden? Sie können bis zum Ende suchen und dann schreiben.

0

Laut der javadoc wird ein Formatierer, der mit einem einzelnen String-Argument erstellt wurde, zuerst die Datei leeren (auf Länge null abschneiden), bevor er in sie schreibt. Aus diesem Grund wird Ihre Datei nicht angehängt. Das Programm entfernt zuerst alles, was sich in der Datei befindet, und schreibt dann den neuen Inhalt darauf, wenn Sie l.format() aufrufen.

Wahrscheinlich möchten Sie Ihre Daten in einen String mit Formatter() formatieren. Öffnen Sie Ihre Datensatzdatei zum Anhängen und schreiben Sie diese Zeichenfolge in die Datei. This link sollte viele Details darüber haben, wie Sie dies tun könnten. (Ich habe gegoogelt "Java öffnen und eine Datei schreiben", um diese Ressource zu finden)