An bestimmte Stellen in ein File schrieben

darksmilie

Erfahrenes Mitglied
Hi

Ist es möglich an eine bestimmte Stelle in einer Properties Datei zu schreiben?

Momentan überschreibe ich diese immer ganz:
Code:
String filename = "branch.properties";
	     try {
	    	FileOutputStream propOutFile = new FileOutputStream(filename);
	    	prpp = new Properties( System.getProperties() );
	    	prpp.setProperty("p4.branchname", pb.getText());
	    	prpp.store(propOutFile, "test");
	     } catch (IllegalArgumentException e) {
	     } catch( FileNotFoundException e ) {
	    	 JOptionPane.showMessageDialog(null,"Can’t find " + filename );
	     }
	     catch ( IOException e ) {
	    	 JOptionPane.showMessageDialog(null,"I/O failed." );
	     }

Bei dieser Properties ist es noch nicht so schlimm, da hier nur dieser Wert drin steht, aber ich muss jetzt eine größere schrieben lassen und da möchste ich gerne, das er mir immer in die bestimmten zeilen schreibt.

Also in dem Fall wäre es dann p4.branchname=XXXX
und da wo die XXXX sind soll dann meine String Variable reingeschrieben werden.
 
Hi !

Also wie ich das verstehe willst du sowas ähnliches machen wie in "ini"-Dateien unter Windows :

[Abschnitt 1]
parameter1 = irgendwas
parameter2 = irgendwas
...
[Abschnitt 2]
parameterX = irgendwas
parameterY = irgendwas
....

und auf die Abschnitte direkt zugreifen, wegen grosser Dateien.

Meiner Meinung nach musst du immer über die ganze Datei laufen, ausser du speicherst irgendwo noch einen Index auf die Abschnitte und greifst dann wahlfrei auf die Abschnitte zu. Mehr dazu unter diesem Link :

http://www.galileocomputing.de/open...sel12_001.htm#Rxx747java12001040003F81F014100

Darüber liest du dann nur den Abschnitt ein den du brauchst und übergibst in einem Properties-Objekt.

Sind die Properties-Klassen wirklich so lahm ?

Wie gross ist denn deine Datei ? (500kb, 50mb, 500 mb ?)
Wenn sie zu gross sind, würde ich mir Gedanken über eine andere Art der Organisation der Daten machen (XML, eine Datenbank etc.)
Allerdings machst du das ja gerade hier .... ;-)

Naja, vielleicht konnte ich dir ja irgendwie weiterhelfen ...

Gruss,

Krösi
 
Hallo!

Wie Krösi schon schrieb kannst du mit der Klasse RandomAccessFile wahlfrei in einer datei Navigieren. Weiterhin würde ich sagen, dass du jedoch ruhig mit der Properties Klasse leben kannst wenn die Datei noch kleiner als 1MB ist...

Gruß Tom
 
Also meine Datei ist 1kb groß :).

Ich wollte das eigentlich nutzen um meine Prefences für mein Plugin zu sichern.

Da ich die Prferences aufgeteilt habe würde ich von verschiedenen Klassen in diese Datei schreiben.

Momentan habe ich das so gelösst das ich die Preferences in verschiedene Datein schreibe, aber ich werde das damit auf jedenfall mal ausprobiern, man sollte ja seine Entwicklungen so klein wie möglich halten ;).

Danke für die Hilfe.
 
Zurück