An selbst ersteller txt Datei immer Text dranhängen, ohne den vorherign Text zu löschen

berserkerdq2

Bekanntes Mitglied
Hi, ich habe eine Methode, die bei einer TextDatei, die ich zuvor erstellt habe, immer etwas reinschreibt, um genauer zu sein, das was ich der Methode übergebe. Aber leider ist es so, dass wenn ich mehrfach die Methode aufrufe, immer nur das neuste in der Liste steht, also statt dass da was dazu geschrieben wird, wird das vorherige gelöscht, woran könnte das liegen?


[CODE lang="java" title="So sieht der Code in etwa aus"]File test = new File(Path);

Methode(String uebergabe){
try{
FileWriter a = new FileWriter(test);
FileReader b = new Filereader(test);
int stepper;
while ((stepper=b.read()) != -1){
a.write(stepper);

}
a.write("neu");
a.close();
}catch (IOException e){
e.printStackTrace();
}
}[/CODE]
 
Zuletzt bearbeitet:

berserkerdq2

Bekanntes Mitglied
Für die die es interessiert, habe es gelöst richtig wäre:

Java:
File test = new File(Path);

Methode(String uebergabe){
    try{
        FileWriter a = new FileWriter(test,true);
        a.write("neu");
        a.close();
    }catch (IOException e){
            e.printStackTrace();
        }
}

So klappt es, mir ist jedoch nicht klar, warum die andere Methode nicht geht.
 

KonradN

Super-Moderator
Mitarbeiter
Die erste Methode kann nicht funktionieren, da du eine Datei zwei Mal öffnen willst und der Schreibvorgang möchte ein exklusiven Lock.

Und dieses nicht öffnen können der Datei wird da vermutlich die Fehlermeldung gewesen sein.

=> immer genau sagen, was du als Fehler bekommen hast. Das hilft uns, dir zu helfen.
 

Neumi5694

Top Contributor
Sie wolle also eine Endlosschleife erzeugen und eine Datei, die immer größer wird :)

Dein Code funktioniert grundsätzlich schon, bei jedem Aufruf wird die Datei erstellt und mit "neu" befüllt.

Damit die Endlosschleife funktioniert, musst du erstens beim Writer true angeben, damit er anhängt und nicht neu erstellt.
Zweitens musst du nach jedem Schreibvorgang a.flush() ausführen, damit auch wirklich geschrieben wird.

Edit: Das funktioniert natürlich erst beim zweiten Aufruf, da beim ersten noch nichts in der Datei steht, das ausgelesen werden kann.
 
Zuletzt bearbeitet:

Neumi5694

Top Contributor
Die erste Methode kann nicht funktionieren, da du eine Datei zwei Mal öffnen willst und der Schreibvorgang möchte ein exklusiven Lock.

Und dieses nicht öffnen können der Datei wird da vermutlich die Fehlermeldung gewesen sein.

=> immer genau sagen, was du als Fehler bekommen hast. Das hilft uns, dir zu helfen.
Doch, das funktioniert grundsätzlich schon. Ich hab's gerade gemacht und es wird fleißig gleichzeitig geschrieben und ausgelesen.
Java:
        File test = new File(...);
        try {
            FileWriter a = new FileWriter(test, true);
            FileReader b = new FileReader(test);
            int stepper;
            while ((stepper = b.read()) != -1) {
                a.write(stepper);
                a.flush();
            }
            a.write("neu");
            a.close();
            b.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
Ergebnis nach dem zweiten Ausführen nach ein paar Sekunden (hab den Großteil des Textes rausgelöscht):
Java:
neuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneuneuneuneuneneu........
 

Neumi5694

Top Contributor
ps: Ziemlich abseits vom Thema: Das hier hab ich letztens ein paar Mal in Posts gesehen:

Java:
    }catch (IOException e){ //oder welche Exception auch immer
        e.printStackTrace();
    }
Die hier enthaltene Information ist ... spärlich.
Du willst ja vor allem mal wissen, was passiert ist, oder?

Also gib den Grund auch mit aus:
Java:
    }catch (IOException e){ //oder welche Exception auch immer
        System.out.println(e.getMessage());
        e.printStackTrace();
    }

Zweitens haben Fehlermeldungen in der Standardausgabe nur selten was zu suchen, also ab damit nach System.err
Java:
    }catch (IOException e){ //oder welche Exception auch immer
        System.err.println(e.getMessage());
        e.printStackTrace(System.err);
    }

Noch besser (da man in einem UI-Programm weder System.out noch System.err verwenden sollte) ist, gleich einen Logger zu verwenden, hier z.B. der Standardlogger von Java (java.util.logging.Level / Logger):
Java:
    }catch (IOException e){
        //hier kann auch ein anderer String anstatt des Klassennamens verwendet werden, so hat halt jede Klasse ihren eigenen Logger
        Logger.getLogger(MyClass.class.getName()).log(Level.SEVERE, "This is a customized message, can also be null", ex);
    }
 

KonradN

Super-Moderator
Mitarbeiter
Doch, das funktioniert grundsätzlich schon
Oh, das hat mich jetzt tatsächlich überrascht. Ich bin eigentlich immer gewohnt, dass standardmäßig Dateien beim schreiben geblockt sind. Das ist aber bei Java nicht der Fall. Wenn man dieses Verhalten möchte, dann müsste man dies manuell über FileChannel machen.

Für den TE erklärt sich das funktionieren dann ganz einfach:

Angenommen Du hast eine Datei mit dem Inhalt:
INHALT DER DATEI

Nun Öffnest Du diese Datei zum Lesen und zum Schreiben (Append) - womit Du dann den Lesezeiger bei dem I hast und den Schreibzeiger hinter dem I.
Nun liest Du den Buchstaben ("I") und schreibst diesen an das Ende:
INHALT DER DATEII

Lesezeiger ist nun auf dem N, Schreibzeiger hinter dem I.
Nächstes Zeichen ist nun das N:
INHALT DER DATEIIN
Das geht immer weiter. Wenn das erste "INHALT DER DATEI" gelesen und geschrieben wurde, dann ist der Lesezeiger nach dem ersten Teil und damit aber vor dem zweiten Teil. Und der Schreibzeiger ist natürlich am Ende.

Damit hat man dann ganz klar eine Endlosschleife.
 

Neumi5694

Top Contributor
Oh, das hat mich jetzt tatsächlich überrascht. Ich bin eigentlich immer gewohnt, dass standardmäßig Dateien beim schreiben geblockt sind. Das ist aber bei Java nicht der Fall. Wenn man dieses Verhalten möchte, dann müsste man dies manuell über FileChannel machen.

Für den TE erklärt sich das funktionieren dann ganz einfach:

Angenommen Du hast eine Datei mit dem Inhalt:
INHALT DER DATEI

Nun Öffnest Du diese Datei zum Lesen und zum Schreiben (Append) - womit Du dann den Lesezeiger bei dem I hast und den Schreibzeiger hinter dem I.
Nun liest Du den Buchstaben ("I") und schreibst diesen an das Ende:
INHALT DER DATEII

Lesezeiger ist nun auf dem N, Schreibzeiger hinter dem I.
Nächstes Zeichen ist nun das N:
INHALT DER DATEIIN
Das geht immer weiter. Wenn das erste "INHALT DER DATEI" gelesen und geschrieben wurde, dann ist der Lesezeiger nach dem ersten Teil und damit aber vor dem zweiten Teil. Und der Schreibzeiger ist natürlich am Ende.

Damit hat man dann ganz klar eine Endlosschleife.
So haben wir per Shell-Script seinerzeit einen Uni-Server lahmgelegt :) Danach haben sie Quotas eingeführt.
Man überwache eine Datei und lasse ihren Inhalt nach Änderung in die selbe Datei schreiben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Rest mit Spring boot oder selbst anlegen Java Basics - Anfänger-Themen 14
B Hotkeys selbst definieren? Java Basics - Anfänger-Themen 1
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
ruutaiokwu Bluetooth-Zugriff, braucht es dazu plattformabhängige Libraries oder kann das Java mittlerweile selbst? Java Basics - Anfänger-Themen 10
I Klasse selbst fortlaufend nummerieren lassen Java Basics - Anfänger-Themen 11
U Hashmap Iterator selbst implementieren Java Basics - Anfänger-Themen 10
S Tokenizer selbst implementieren Java Basics - Anfänger-Themen 1
M WindowStateListener selbst implementieren Java Basics - Anfänger-Themen 8
G MapStruct Anwendung vom selbst geschriebenen Formater Java Basics - Anfänger-Themen 4
F Kindklassen sollen Ihre Methoden selbst implementieren Java Basics - Anfänger-Themen 5
G Objekt der selben Klasse wie selbst mit Aufrufen des Konstruktors erzeugen Java Basics - Anfänger-Themen 14
S Code richtig / besser machbar? (Nicht sicher, ob Code selbst falsch ist) Java Basics - Anfänger-Themen 4
B Wie kann ich eine Methode einer selbst erstellten Klasse statisch importieren? Java Basics - Anfänger-Themen 5
I TreePath selbst erstellen und expandPath Java Basics - Anfänger-Themen 6
O Werte selbst eintragen Java Basics - Anfänger-Themen 9
T Selbst erstellten Dateityp mit java Programm assoziieren? Java Basics - Anfänger-Themen 4
K Selbst renderndes Object auf null setzen Java Basics - Anfänger-Themen 1
M Eclipse startet nicht mehr (eclipse.exe beendet sich selbst)? Java Basics - Anfänger-Themen 5
D Exception selbst Implementieren Java Basics - Anfänger-Themen 1
E Array von Objekten einer selbst definierten Klasse mit eindeutigem Namen Java Basics - Anfänger-Themen 2
M Java Datei soll sich selbst löschen Java Basics - Anfänger-Themen 8
M Java Bukkit Plugin (selbst erstellt) Java Basics - Anfänger-Themen 9
S Listen Klasse selbst schreiben Java Basics - Anfänger-Themen 6
B Methoden Methode lässt sich nicht selbst aufrufen? Java Basics - Anfänger-Themen 3
H JFileChooser... dateispeicherpfad selbst aussuchen Java Basics - Anfänger-Themen 4
L Klassen Kann eine Klasse sich selbst returnen? Java Basics - Anfänger-Themen 26
T methode ruft sich selbst auf Java Basics - Anfänger-Themen 28
J importieren von selbst definierten klassen Java Basics - Anfänger-Themen 10
M JButton selbst nachprogrammieren Java Basics - Anfänger-Themen 3
J selbst erstellte Hashtabelle -- Warum Exception? Java Basics - Anfänger-Themen 3
K indexOf selbst rekursiv definieren Java Basics - Anfänger-Themen 4
M selbst gezipptes File lässt sich nicht öffnen Java Basics - Anfänger-Themen 2
S Deserialisieren auf sich selbst Java Basics - Anfänger-Themen 4
Developer_X JButton removt sich selbst Java Basics - Anfänger-Themen 32
G isEmpty selbst realisieren Java Basics - Anfänger-Themen 47
R Ein/Ausleseproblem von Datei mit selbst erstellten Objekten Java Basics - Anfänger-Themen 10
M "Selbst erstellte" Buttons nicht sichtbar. Java Basics - Anfänger-Themen 20
D Bei Event soll Instanz sich selbst löschen Java Basics - Anfänger-Themen 4
K Wieso schaltet meine CheckBox von selbst um ? Java Basics - Anfänger-Themen 31
F JOptionPane selbst programmieren Java Basics - Anfänger-Themen 8
E Eine Klasse hat eine Instanz von sich selbst. Java Basics - Anfänger-Themen 6
L vor- und zurückblättern selbst gemacht Java Basics - Anfänger-Themen 18
G Button selbst entwerfen Java Basics - Anfänger-Themen 9
G Mit "instanceof" sich selbst Fragen? Java Basics - Anfänger-Themen 4
G Array von selbst-definiertem Typ Java Basics - Anfänger-Themen 3
R Comparable Interface Funktionalität selbst programmieren? Java Basics - Anfänger-Themen 3
B Programm sich selbst neu starten lassen Java Basics - Anfänger-Themen 8
D Thread soll sich selbst beenden Java Basics - Anfänger-Themen 8
G Objektarray mit sich selbst rekombinieren Java Basics - Anfänger-Themen 5
B Objekt soll sich selbst löschen Java Basics - Anfänger-Themen 25
K Vector mit sich selbst vergleichen Java Basics - Anfänger-Themen 2
rambozola selbst definierte exception abfangen funzt nicht Java Basics - Anfänger-Themen 14
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
E Audio Datei unter Bedingungen ausführen Java Basics - Anfänger-Themen 19
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
W Fehler in der Datei pom.xml Java Basics - Anfänger-Themen 19
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
B von Java/Eclipse verwendete Datei existiert gar nicht? Java Basics - Anfänger-Themen 6
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
B Popups mit Klicksabfangen zumAusfüllen einer .ods Datei Java Basics - Anfänger-Themen 0
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
A CSV-Datei Verarbeiten Java Basics - Anfänger-Themen 8
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
S In Datei schreiben in Java? Java Basics - Anfänger-Themen 1
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
sserio Txt Datei einlesen Java Basics - Anfänger-Themen 9
T Printwriter Datei nicht überschreiben Java Basics - Anfänger-Themen 10
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
M Text in Datei schreiben Java Basics - Anfänger-Themen 9
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
J int innerhalb einer Datei ändern Java Basics - Anfänger-Themen 1
T208 Text Datei individuell benennen. Java Basics - Anfänger-Themen 5
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
E extern Datei von meinem Computer aufmachen Java Basics - Anfänger-Themen 5
H Scripte oder Programmcode aus Datei lesen? Java Basics - Anfänger-Themen 5
E PDF Datei im xfdf-Datei umwandeln und auf dem Laufwerk ablegen Java Basics - Anfänger-Themen 0
J CSV-Datei verarbeiten Java Basics - Anfänger-Themen 27
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19

Ähnliche Java Themen

Neue Themen


Oben