Veröffentlicht 14. April 200322 j Hi, ich speichere ein paar daten meiner applikation in propertyfiles ... wenn ich nun eine eigenschaft aendere und diese dann per store in die datei schreibe, werden alle anderen eintraege geloescht. wie kann ich das verhindern? danke
14. April 200322 j okay so in etwa sieht es bei einem BufferedWriter aus: BufferedWriter bw = new BufferedWriter(new FileWriter("datei.txt", true)); wobei es auf das ", true" ankommt ... ich vermute mal bei den meisten Schreibarten gibt es diese Möglichkeit. Greets
14. April 200322 j also bei mir sieht das so aus: out = new BufferedOutputStream( new FileOutputStream( APPPROPERTIEFILE ) ); ApplicationProperties.setProperty( key, value ); ApplicationProperties.store( out, "title" ); out.close(); und der 2te parameter vom outputstream waere size ... mit boolean hat das nix zu tun ...
14. April 200322 j dann probier mal folgendes: out = new BufferedOutputStream( new FileOutputStream( APPPROPERTIEFILE , true) ); ApplicationProperties.setProperty( key, value ); ApplicationProperties.store( out, "title" ); out.close(); FileOutputStream(String name, boolean append) : append - if true, then bytes will be written to the end of the file rather than the beginning Quelle: http://java.sun.com/products/jdk/1.2/docs/api/java/io/FileOutputStream.html#FileOutputStream(java.lang.String,%20boolean)
14. April 200322 j nee ... nich wirklich. nun passiert genau das, was ich vermutet hatte ... das propertyfile sieht wie eine logdatei aus. #title #Mon Apr 14 12:58:56 CEST 2003 MaxCollectorDays=1 SaveCustomer=1 LookAndFeel=Plastik #title #Mon Apr 14 14:28:17 CEST 2003 LookAndFeel=Plastik #title #Mon Apr 14 14:28:17 CEST 2003 MaxCollectorDays=3 #title #Mon Apr 14 14:28:17 CEST 2003 SaveCustomer=0 #title #Mon Apr 14 14:28:20 CEST 2003 LookAndFeel=Plastik #title #Mon Apr 14 14:28:20 CEST 2003 MaxCollectorDays=3 #title #Mon Apr 14 14:28:20 CEST 2003 SaveCustomer=1
14. April 200322 j yo das schaut natürlich so aus weil einfach angehängt wird. dann kannst du das mit dem true knicken musst vllt ne andere write methode versuchen.. http://java.sun.com/products/jdk/1.2/docs/api/java/io/BufferedWriter.html einfach mal gucken, musst nen schreiber haben der an nem bestimmten byte anfängt und auch wieder aufhört denke ich .. vielleicht liege ich auch daneben mit meiner idee ... naja ne andere idee wäre dass du weisst welche zeile getauscht werden soll (wenn denn ne zeile getauscht werden soll). dann zählst du irgendwie so lang hoch bis du in der richtigen zeile angelangt bist und ersetzt sie... lass die fantasie spielen
14. April 200322 j hm, ok. ich war mal kreativ ... einfach alle properties auslesen, key aendern und wieder speichern. so funtzt's. :cool: in = new BufferedInputStream( new FileInputStream( APPPROPERTIEFILE ) ); ApplicationProperties.load( in ); in.close(); out = new BufferedOutputStream( new FileOutputStream( APPPROPERTIEFILE ) ); ApplicationProperties.setProperty( key, value ); ApplicationProperties.store( out, "title" ); out.close();
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.