# 2 zeilen in textdatei beim auslesen verbinden



## Guest (20. Sep 2007)

Hallo, kann man zeilen in textdateien verbinden?

Also ich habe eine text datei pref.properties. In dieser stehen verschiedene konfigurationsdaten. Ein eintrag ist für alle verwendeten drucker im Programm. Nun möchte ich gerne jeden drucker(nama, ip,host) auf ne eigene zeile für eine bessere übersicht.
Im Programm werden die dateien dann als properties(java.util) ausgelesen. Kann ich am ende der zeile oder am anfang der nächsten zeile ein zeichen einfügen um die zeilen zu verbinden. So das beim auslesen ein lager string rauskommt, welchen ich dann splitten kann, anhand dieses Zeichens?


also z.b so 

printer= standartPrinter,196.100.200.2,1880-
             colorPrinter,196.100.200.10,1930-
             photoPrinter,196.100.200.3,1456
maxAnz= 100

Gibt es dafür ne Möglichkeit. verwende den eclipse preferencestore, welcher java.util.properties zum auslesen verwendet. Kann also beim auslesen nix ändern. Deswegen die frage gibt es ein zeichen was automatisch 2 zeilen verbindet?


----------



## jPat (20. Sep 2007)

in einer Textdatei? nein.


----------



## schuetzejanett (20. Sep 2007)

hmm schade, wie würdet ihr das lösen, also die drucker alle in eine zeile schreiben( sind ca. 4 stück) oder ne variable anz drucker und dann für jeden drucker ne eigene variable drucker1 usw. Allerdings ist, die verwaltung mit dem Auslesen, Ändern und speichern dannn komüpliziert.

Gibts noch bessere Möglichkeiten, das Problem zu lösen. Vielleicht beim Speichern ein trennnzeichen (\n) mit schreiben, was ich wenn ich die datei mit dem editor öffne sehe also mehrere zeilen aber in wirklichkeit nur eine zeile ist?
Oder ne andere kreative Idee?


----------



## FenchelT (20. Sep 2007)

Hallo,

Du koenntest z.B. 
1. alles auslesen, z.B. in ein Array oder aehnlichem, die Datei schliessen
2. das Ausgelesene konkatinieren und in eine neue Datei wegschreiben
3. die alte Datei loeschen
4. die neue Datei in den Namen der alten Datei umbennen


----------



## schuetzejanett (20. Sep 2007)

da ich den preference store  von eclipse erwende, kann ich das leider nicht machen, denn ich gbe nur die datei an und kann mir dann die strings für die ein zelnen eigenschaften geben lassen. Das auslesen als string wird von dem framework realisiert ich kann nur den string den ich auslese und speicher verändern. deswegen ja der versuch mit einem trennzeichen, die zeilen zu teilen und zusammenzufassen


----------



## Wildcard (20. Sep 2007)

Normalerweise wird der Store so verwendet, das Eclipse die Datei speichert (irgendwo im Workspace, wo genau brauchst du nichtmal zu wissen). Tatsächlich braucht dich nichtmal zu interessieren ob es sich um eine Datei, eine Datenbank, oder von mir aus den Java PreferencesStore handelt.
Warum interessiert dich also wie die Datei aussieht?  ???:L


----------



## schuetzejanett (21. Sep 2007)

naja die datei, gebe ich ja vor. also ich habe die properties datei ja geschrieben, so als vorgabe. und wollte halt das man sie auch öffnen und ändern kann. also von hand,, für administrartoren und im programm dann hauptsächlich für den nutzer. und deswegen wollte ich es auch etwas übersichtlicher machen


----------



## Murray (21. Sep 2007)

Den Ansatz halte ich für gefährlich - wenn man den PreferenceStore verwendet, dann sind sowohl die Tatsache, dass dabei intern java.util.Properties verwendet werden, als auch das Speicherformat der java.util.Properties eigentlich Implementierungsdetails, die man nicht als unveränderlich gegeben ansehen sollte.


----------



## schuetzejanett (21. Sep 2007)

Ja ich weiß das das nicht unveränderlich ist, sollte es ja auch nicht sein, hatte ja erst auch nur die Datei welche ich mit den java.util.properties ausgelesen und verwendet habe. Da ich aber auch die eigenschaften vom Programm aus änderbar machen wollte, habe ich auf den preference store und preferencepages zurückgegriffen.


----------



## Gast (21. Sep 2007)

Hallo 

Kann mir jemand sagen wie ich bei java zwei Dateien in eine Datei Kopieren kann ohne sie zu überschreiben. 

Danke


----------



## Murray (21. Sep 2007)

Beim FileOutputStream kann man im Konstruktor angeben, ob überschrieben oder angehängt werden soll. Du könntest also beim Kopieren der ersten Quelldatei die Zieldatei im Überschreibemodus öffnen, die erste Datei komplett in die Zieldatei kopieren, die Zieldatei schließen und im Anhängemodus erneut öffnen und dann die zweite Datei komplett in die Zieldatei kopieren.


----------

