2016-04-21 10 views
1

Ich benutze mehrere Java-FileWriter, um Daten an eine Ausgabedatei anzufügen. Die Dateien bleiben während der Verarbeitung geöffnet und werden periodisch in (angehängt) geschrieben. Gelegentlich treffe ich einen Punkt in der Logik, bei dem der Inhalt einer aktuell geöffneten Datei gelöscht werden muss (die Dateilänge wird zu Null), und ich fange von oben erneut an zu hängen.Java FileWriter, löschen Sie regelmäßig Dateiinhalte

Ohne die Datei zu schließen und erneut zu öffnen, gibt es eine effiziente Methode, um dies mit FileWriter zu erreichen?

Antwort

1

Ohne die Datei zu schließen und erneut zu öffnen, gibt es eine effiziente Methode, um dies mit FileWriter zu erreichen?

Nein. Sie hätten ein RandomAccessFile mit seinen Leistungs- und Zeichensatzproblemen.

Erstellen Sie eine neue FileWriter.

+0

Danke! Schließen/erneut öffnen war meine Standardmethode und ich habe nach ein paar Suchen nichts gefunden. Ich dachte nur, ich würde auch die Experten fragen! :-) – garyn

0

Sie könnten FileOutputStream anstelle von FileWriter verwenden und stream.getChannel().truncate(0) verwenden. Aber beachten Sie, dass es byteorientiert und nicht zeichenorientiert ist, daher würde ich es nicht empfehlen, wenn FileWriter besser passt.