Zum Inhalt springen

Neue Zeile in Textdatei einfügen


Empfohlene Beiträge

Geschrieben

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

  • 2 Wochen später...
Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...