Schreiben in txt-Datei von StringWriter
Ich habe einen StringWriter variable sw
, die gefüllt wird, durch ein FreeMarker template. Einmal habe ich aufgefüllt, die sw
, wie kann ich drucken Sie es in eine text-Datei?
Habe ich eine for-Schleife wie folgt:
for(2 times)
{
template.process(data, sw);
out.println(sw.toString());
}
Gerade jetzt, ich bin einfach der Ausgabe auf dem Bildschirm nur. Wie mache ich dies für eine Datei? Ich kann mir vorstellen, dass mit jeder Schleife, mein sw
wird geändert, aber ich möchte die Daten aus jeder Schleife angehängt, die zusammen in der Datei.
Edit:
Ich habe versucht den code weiter unten. Wenn es läuft, es wird zeigen, dass die file.txt
geändert wurde, aber wenn es lädt, die Datei hat immer noch nichts drin.
sw.append("CheckText");
PrintWriter out = new PrintWriter("file.txt");
out.println(sw.toString());
- Siehe meine Antwort, es zeigt, wie PrintWriter
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie etwa
und auch Sie könnten erwägen, einen Ausgabe-stream, die können Sie direkt den pass zu
template.process(data, os);
anstatt zuerst das schreiben in einen StringWriter dann in eine Datei.Blick in die API-doc für die
template.process(...)
um herauszufinden, ob eine solche Einrichtung zur Verfügung.Antwort 2
template.process(Object, Writer)
können auch ein FileWriter-Objekt, Hexe ist eine Unterklasse von Writer als parameter hat, so dass Sie wahrscheinlich etwas tun zu können:FileWriter("file.txt", true)
der zweite parameter gibt an, welches die Daten sollten nicht abgeschnitten werden, die auf offenen, den neuen Inhalt angehängt. Aber in Ihrem Fall sollten Sie die Datei öffnen, bevor die Schleife und schließen Sie es, sobald Sie fertig sind nach der Schleife.Können Sie viele verschiedene streams in Datei schreiben.
Ich persönlich mag die Arbeit mit
PrintWriter
hierSie können die Flagge anfügen in der FileWriter (das wahre im folgenden Beispiel):
Warum nicht ein FileWriter ?
Öffnen, bevor Sie die Schleife und erstellen Sie Ihre gewünschte Ausgabe. Wie Sie schreiben FileWriter es werde Anhängen an die Puffer-und schreiben Sie Ihre gesammelten Ausgang auf eine
close()
Beachten Sie, dass Sie können öffnen Sie einen FileWriter in überschreiben oder Anhängen - Modus, so dass Sie können anfügen an existierende Dateien.
Hier ein einfaches tutorial.
Wenn Euch das nichts ausmacht, Apache-commons-IO :