Daten an Dateianfang schreiben

dasago

Mitglied
Hi Leute,

bei meinem Code wird eine Datei geöffnet und beschrieben. Der Befehl:
Code:
FileOutputStream pOutFile = new FileOutputStream(filename,true);
ist verantwortlich um die Datei zu öffnen. "True" gibt an, dass die Datei nicht überschrieben wird, sondern die Daten immer angehängt werden. Da die neuen Daten aber immer am Ende der Datei anghängt werden, wollt ich fragen, ob es auch funktioniert, dass die neuen Daten, die gespeichert werden sollen, am Anfang der Datei abgespeichert werden. Wenn ja, wie funktioniert dies?

Code:
import java.io.*;
import java.util.*;

public class Logging {

       public void write() {
		//Dateiverzeichnis
		String filename = "D:\\Test\\test.log";
		try {
			// Datei schreiben, bei "false" wird die Datei überschrieben
		      FileOutputStream pOutFile = new FileOutputStream(filename,true);
		      //Properties festlegen
		      Properties p1 = new Properties( System.getProperties());
		      p1.setProperty("Version", "1.4.2");
		      p1.setProperty("Username", "Testuser);
		      p1.setProperty("Server", "Testserver");
		      p1.setProperty("Database", "Testdata");
		      p1.setProperty("Port", "1234");      
		      //speichern der Properties
		      p1.store( pOutFile, "Logging" );
		      // Datei schliesen
		      pOutFile.close();
			}
		catch ( FileNotFoundException e ) {
			System.err.println( "Can’t find " + filename );
		}
		catch ( IOException e ) {
			System.err.println( "I/O failed." );
		}
	}
}
 
Hallo und halli
Mir ist da eigetnlich keine spezielle Technik bekannt, aber pauschal würde ich sagen, man müsste die Datei vor dem Schreiben lesen und dann halt den oder di eeinträge ganz oben reinsetzten. Das ist natürlich nicht sonderlich elegant und erfordert je nach länge der schon geschreibenen Datei mehr oder weniger lange, und logs können gegf. elend lang sein.
Die Frage für ich stellt sich auch hier fachlich, soll eigetnlich jede Zeile oben angefügt werden oder besteht ein Eintrag der nach oben eingeordnet sein soll physich aus meheren Zeilen?

Da das oben beschriebene Unterfangen ziemlich resourcenfressend ist wäre es vielleicht angebrachter die Datei so zu schreiben wie sie halt geschrieben wird und stattdessen einfach eine Viewer-Anwendung zu schreiben, die die Einträge, entweder Zeilenweise oder halt in logischen verbunden, in umgekehrter reihnfolge aufgelistet anzeigt, ich denke das wäre die bessere Alternative.

Takidoso
 
Das problem ist, dass ich Java Anfänger bin und mich nciht wirklich richtig mit Java auskenn... Hättest mir denn ein Beispiel damit ich es besser versteh? War froh, dass ich diese Lösung gefunden hab! Und es stört halt das es immer unten angehängt wird.
 
Zurück