Zum Inhalt springen

Neue Zeile in Textdatei einfügen


tacmot

Empfohlene Beiträge

Hi Leute,

ich bin auf der Suche nach einer Möglichkeit in eine Textdatei eine neue Zeile einzufügen.

Hintergrund ist folgender, ich habe ein Log-File welches regelmäßig durch neue Einträge aktualisiert wird. Diese neuen Einträge sollen immer an der gleichen Stelle eingefügt werden, so das alle alten Einträge nach unten verschoben werden.

Über ein RandomAccessFile werden die alten Einträge leider überschrieben, es sei denn ich lade das komplette Log-File in ein Array und füge die neuen dann hinzu. Allerdings dauert diese Methode mit zunehmender Dateigröße sehr lange.

Kann mir das jemand nen ratsamen Tipp geben?

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Hi,

die, meiner Meinung nach, beste Lösung für „logging“ in Java ist log4j.

Es gibt zahlreiche Möglichkeiten log4j deinen Wünschen entsprechend zu konfigurieren. Guck es dir einfach an.

:mod:

http://logging.apache.org/log4j/docs/

oder deutsch

http://www.javacore.de/tutorials/schnelle/log4jmanual.pdf

Gruß .Erbse

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kann mein Beitrag nicht editieren :confused:

...egal.

So nun, wenn du ein Buffer benutzt, dann soll es angeblich schneller gehen, hier ist mein Vorschlag:


public class Tester {


	public static void main(String[] args) {

		String message = new Date() + " - test test\r\n";

		File f = new File("logfile.log");

		File temp = new File("temp.log");


		try {

			if (!f.exists()) {

				f.createNewFile();

			}

			byte[] buffer = new byte[1024];

			FileInputStream fileIn = new FileInputStream(f);

			FileOutputStream out = new FileOutputStream(temp);


			out.write(message.getBytes());


			int len = 0;

			while ((len = fileIn.read(buffer)) > 0) {

				out.write(buffer, 0, len);

			}

			fileIn.close();

			out.close();

			f.delete();


			temp.renameTo(f);

		} catch (IOException e1) {

			// TODO Auto-generated catch block

			e1.printStackTrace();

		}

	}

}

Buffergröße proportional zur Dateigröße.

Viel Glück :)

Gruß .Erbse

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...