Alternative zu .properties Dateien

Status
Nicht offen für weitere Antworten.
G

Gast2

Gast
Hi,
in meiner Anwendung verwende ich zum Abspeichern von Einstellungen eine Properties Datei.
Das ganze funktioniert auch wunderbar... eine kleine Unschönheit ist allerdings, dass immer wenn ich Einstellungen abspeichere alles Kreuz und Quer weggespeichert wird, es lässt sich nie ne Reihenfolge festlegen und man darf immer fleißig nach werten suchen ;)
Gibt es da ne Alternative mit der ich ohne größeren Programmieraufwand Einstellungsdateien speichern kann?
Wichtig wäre mir wie gesagt dass man eine klare Struktur erkennen kann (also bitte auch kein XML oder ähnliches) und diese auch erhalten bleibt ;)

Gruß
 

diggaa1984

Top Contributor
du könntest auf Preferences ausweichen, da brauchst dich nicht mal kümern wo und wie du die speicherst, das übernimmt java für dich .. in windows bspw: landen die Einträge in der Registry .. referenziert wird das ganze dann per Klassen oder Package-ID .. bin mir da grad net so sicher.
 

eRaaaa

Top Contributor
aber bei properties haben wir doch auch key,value paare und können mittels getProperty() den wert auslesen? also wieso lange danach suchen? oder versteh ichs falsch ?!
 
G

Gast2

Gast
aber bei properties haben wir doch auch key,value paare und können mittels getProperty() den wert auslesen? also wieso lange danach suchen? oder versteh ichs falsch ?!
Genau, aus Java heraus is das alles ganz easy, dafür gibts die Methoden.
Aber wenn ich jetzt aus Windows heraus (z.b. per notepad) an der Datei was ändern möchte sieht das alles ziemlich unübersichtlich aus. Außerdem ändert sich die reihenfolge der keys nach jedem speichern, d.h. man muss jedesmal ne endlose liste an keys durchschauen bis man den richtigen gefunden hat wo man dann das value ändern möchte.

du könntest auf Preferences ausweichen, da brauchst dich nicht mal kümern wo und wie du die speicherst, das übernimmt java für dich .. in windows bspw: landen die Einträge in der Registry
Ich denke das kommt für mich auch nicht in Frage, da hat der Anwender ja noch mehr Schwierigkeiten sich zurechtzufinden :bae:

So würde ich mir meine Settingsdatei vorstellen:
[GENERAL OPTIONS]
bla=blub
key15=value123

[DATABASE OPTIONS]
user=admin
password=pw
port=3306
db_name=foo

[NETWORK OPTIONS]
port=123
server_ip=127.0.0.1

[OTHER OPTIONS]
etc.
 

diggaa1984

Top Contributor
von Anwender-Änderungen war ja nich die Reden :D

aber sone settingsdatei kannst dir ja locker selbst zusammenschreiben sind ja nur properties mit sections sozusagen.
 

eRaaaa

Top Contributor
du kannst doch dne properties einen kommentar hinzufügen:
Java:
FileOutputStream propOutFile = new FileOutputStream(filename);

			Properties p1 = new Properties();

			p1.setProperty("bla", "blub");
			p1.setProperty("key15", "value123");
			p1.store(propOutFile, "[GENERAL OPTIONS]");

			Properties p2 = new Properties();
			p2.setProperty("user", "admin");
			p2.setProperty("password", "pw");
			p2.store(propOutFile, "[DATABASE OPTIONS]");

in der datei stehts dann so:

Code:
#[GENERAL OPTIONS]
#Thu Sep 10 01:12:29 CEST 2009
bla=blub
key15=value123
#[DATABASE OPTIONS]
#Thu Sep 10 01:12:29 CEST 2009
user=admin
password=pw

/edit also nur noch das problem mit der reihenfolge..hmm :)
aber wieso sollte auch ein anwender in den dateien rumfummeln? :)
 
Zuletzt bearbeitet:
G

Gast2

Gast
von Anwender-Änderungen war ja nich die Reden :D

aber sone settingsdatei kannst dir ja locker selbst zusammenschreiben sind ja nur properties mit sections sozusagen.
Joa... hätte ich wohl besser erwähnen sollen ;)

Meinst du mit selbst zusammenschreiben, dass ich die Datei komplett selbst schreiben soll? Also per FileoutputStream und dann komplett per write("...") komplett händisch schreiben?
Da habe ich Bedenken dass das später mal zur Last werden könnte wenn ich da später 100+ key value paare habe.
 

diggaa1984

Top Contributor
Meinst du mit selbst zusammenschreiben, dass ich die Datei komplett selbst schreiben soll? Also per FileoutputStream und dann komplett per write("...") komplett händisch schreiben?
Da habe ich Bedenken dass das später mal zur Last werden könnte wenn ich da später 100+ key value paare habe.

naja so gesehen muss auch eine .properties im E-Fall mit 1000en Einträgen klar kommen .. auch sie schreibt per Stream vermute ich mal in Datein und muss um Paare und soweiter auszulesen die Datei mind. 1x durchwühlen. Bestenfalls macht sie dies am Anfang und speichert alles intern ab .. Genau das würde ich persönlich auch machen wenn es darum geht sone Art .ini - Notation durchzudrücken.

Was du bräuchtest wäre ja nur eine Klasse, welche sowas bereitstellt wie
Code:
createSection(String sec)
Code:
writeSection(String sec, String key, String value)
.. und sowas alles. Wäre nicht wirklich umständlich
 
G

Gast2

Gast
aber wieso sollte auch ein anwender in den dateien rumfummeln?
In den Dateien befinden sich noch ne ganze Menge Einstellungsmöglichkeiten die über die GUI nicht einstellbar sind, wobei ich wohl (fast) der einzige sein werde der daran rumdoktort, aber mich störts halt iwie :D

@diggaa1984
Ja ich denke das ist ne gute Idee, kann ich sicherlich auch nochmal in anderen Projekten verwenden dann ;)
Bin nur davon ausgegangen dass es sowas wohl schon gibt, wollte nicht das Rad neu erfinden :)
 
T

tuxedo

Gast
Was auch möglich wäre: Durch die properties iterieren, die File damit selbst schreiben, ABER das ganze alphabetisch sortieren. Dann würde man einen bekannten key schneller finden ... Auch wenn neue dazu kommen oder welche Wegfallen wäre die Reihenfolge mehr oder weniger definiert.

Wenns aber auf das Gruppieren ankommt find ich die Sections-Lösung auch schick. Wobei man da auch alphabetisch sortieren könnte.

- Alex
 

Atze

Top Contributor
nur um mal etwas zu ändern, willst du dir das file selbst schreiben??? ich würd dann mit notepad lieber mit strg+f suchen
 

faetzminator

Gesperrter Benutzer
Anonsten würden mir für Configdateien nebst Porperties noch XML und/oder SQL (oder eine andere DB; die DB-Conn-Configuration muss natürlich wieder in eine Datei...) einfallen.
 

faetzminator

Gesperrter Benutzer
Hat denn XML keine klare Struktur? Ich würde so was machen:
Code:
<config>
    <general>
        <item key="foo" value="bar"/>
        <item key="lang" value="en"/>
    </general>
    <database>
        [...]
    </database>
</config>
 

Atze

Top Contributor
vielleicht sucht er ne simple struktur, die auch DAUs verstehen :) xml mag für machen schon zu hoch sein
 
G

Gast2

Gast
Das kommt sich dann aber mit der Aussage in die Quere, er wäre (voraussichtlich) der einzige der die Datei bearbeitet.
Es kann allerdings vorkommen, dass hin und wieder auch der Anwender darin was ändern kann/muss. Daher kommt auch kein XML in Frage.

Wenn du einen Aufbau wie in einer .ini-Datei wünscht, ist das hier vielleicht was für dich:
[ini4j] - Java API for handling Windows ini file format
Danke dir Gastredner! Genau das habe ich gesucht :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Gibt es mittlerweile eine Alternative zu DaisyDiff Allgemeine Java-Themen 2
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
Zrebna Alternative Darstellung eines Codesnippets Allgemeine Java-Themen 33
W Alternative für Threads Allgemeine Java-Themen 6
Thallius Alternative für SwingWorker Allgemeine Java-Themen 5
J Suche Alternative zu Jasper Reports Allgemeine Java-Themen 4
M Suche Alternative zu JFreeChart Allgemeine Java-Themen 11
D Konstruktor - jedes Objekt einzeln erzeugen - alternative? Allgemeine Java-Themen 8
M DAOs veraltet - was ist die Alternative? Allgemeine Java-Themen 13
MiMa Array umbau oder Alternative? Allgemeine Java-Themen 5
C Alternative zu NetworkX in Java Allgemeine Java-Themen 1
M Alternative zur Serialisierung.. Protobuf? Allgemeine Java-Themen 9
B Alternative zu nebenläufigen Prozessen Allgemeine Java-Themen 4
BonoBoo Alternative zum endlosen Instanzieren Allgemeine Java-Themen 2
F Platzsparende Alternative zu .txt-Dateien Allgemeine Java-Themen 12
E Gewollte Endlosschleife unterbrechen oder Alternative gesucht Allgemeine Java-Themen 2
F Alternative sun.jdbc.odbc.JdbcOdbcDriver (Access Datenbank) Allgemeine Java-Themen 2
F alternative zu "JPEGImageDecoderImpl" Allgemeine Java-Themen 2
T Timer oder Alternative? Allgemeine Java-Themen 3
S Alternative zu SortedMap? Allgemeine Java-Themen 8
H Alternative zu Stack Allgemeine Java-Themen 3
pikay Jar2Exe Alternative? Allgemeine Java-Themen 17
E javax.comm: Suche eine open source Alternative zu rxtx Allgemeine Java-Themen 8
H Alternative if Schreibweise mit ? Allgemeine Java-Themen 10
G suche Property alternative Allgemeine Java-Themen 4
H Wie schön oder unschön ist dieser code - alternative ? Allgemeine Java-Themen 5
E Viele if Abfragen auf viele Strings --> Alternative zu if Allgemeine Java-Themen 8
G libext Alternative? Allgemeine Java-Themen 5
S Alternative zu Robot (wegen Umlauten) Allgemeine Java-Themen 13
foobar Alternative zu JavaHelp gesucht Allgemeine Java-Themen 2
I Alternative zu getClass().getResourceAsStream() ? Allgemeine Java-Themen 9
D System.setProperty alternative Allgemeine Java-Themen 4
J alternative zu rsh ? Allgemeine Java-Themen 5
K KeyListener-Alternative ohne anfängliches Delay ? Allgemeine Java-Themen 5
G Alternative zu split() Allgemeine Java-Themen 3
K Alternative zu JNI Allgemeine Java-Themen 3
P Alternative zu replaceAll (jdk < 1.4) Allgemeine Java-Themen 14
M Alternative zu Thread : stop() ? Allgemeine Java-Themen 10
W Ein paar Fragen zu .properties und .css Allgemeine Java-Themen 6
S Test mit Werten aus der .properties Allgemeine Java-Themen 4
S class path resource [config.properties}] cannot be opened because it does not exist Allgemeine Java-Themen 4
ralfb1105 Classpath Directory fuer Properties File Allgemeine Java-Themen 2
K Properties serializable machen Allgemeine Java-Themen 6
KeVoZ_ Properties mit String auslesen Allgemeine Java-Themen 11
thet1983 Input/Output read properties file from classpath Allgemeine Java-Themen 3
Baldur BeanInfo für Properties-UI? Allgemeine Java-Themen 1
J Properties file ändern Allgemeine Java-Themen 12
B Objekte anhand von Properties file Allgemeine Java-Themen 41
W Input/Output Kann .properties Datei in kompilierter .jar nicht ändern Allgemeine Java-Themen 2
Thallius Speicherverhalten von Properties und mehreren Threads Allgemeine Java-Themen 5
T [log4j] Wie nutzt man log4j.properties? Allgemeine Java-Themen 7
I Best Practice Properties auslesen und splitten (RegExp?) Allgemeine Java-Themen 0
OnDemand Lesen aus Properties Allgemeine Java-Themen 7
D JAVA - Properties Datei mit Userdaten Allgemeine Java-Themen 7
M StripesResources.properties Allgemeine Java-Themen 2
GUI-Programmer Mehr als Properties Allgemeine Java-Themen 6
C Dynamisches und sortiertes Auslesen von Properties Allgemeine Java-Themen 2
Mr. Pink Erste Schritte Checkstyle.properties Allgemeine Java-Themen 3
B Properties File Liste Allgemeine Java-Themen 3
X Probleme mit meinem Properties Allgemeine Java-Themen 9
T Wahrscheinlich Problem mit log4j.properties Allgemeine Java-Themen 19
D Properties Datei, Eingabequelle Allgemeine Java-Themen 6
S Stilfrage bezüglich Beans mit Collection-Properties Allgemeine Java-Themen 2
C JAR, Pfad und Properties Allgemeine Java-Themen 17
R Properties Datei aus Applikationsverzeichnis lesen Allgemeine Java-Themen 5
T Properties Datei nicht jedes mal neu schreiben? Allgemeine Java-Themen 2
reibi Separator in java.util.Properties-Files Allgemeine Java-Themen 3
K Serialisierung in Properties-Datei möglich? Allgemeine Java-Themen 3
M Probleme mit UTF-8 und properties Allgemeine Java-Themen 6
C log4j.properties wird nicht verwendet?? Allgemeine Java-Themen 3
T Properties Datei nicht löschbar Allgemeine Java-Themen 8
S Properties binden Allgemeine Java-Themen 2
nrg Knotenpunkte in Properties Allgemeine Java-Themen 9
U Properties in Jar Files Allgemeine Java-Themen 3
S Properties-Dateien anwenden Allgemeine Java-Themen 8
nabla Gutes einlesen von Konfigurationsdateien (Properties?) Allgemeine Java-Themen 11
E Properties +SerialPort Allgemeine Java-Themen 9
H Java Properties Allgemeine Java-Themen 5
A kann nicht auf properties außerhalb jar zugreifen Allgemeine Java-Themen 3
T CP Problem: Webstart + Logging properties file + eigener Handler Allgemeine Java-Themen 7
Y Properties verwalten! Allgemeine Java-Themen 3
G externe Properties datei aus Jar File heraus lesen Allgemeine Java-Themen 12
M Databinding von Object zu properties-Datei Allgemeine Java-Themen 10
F Properties verschlüsselt speichern Allgemeine Java-Themen 5
W Properties-Klasse: mehrere Parameter-Belegungen übergeben? Allgemeine Java-Themen 2
K settings.properties in den src-ordner schreiben Allgemeine Java-Themen 2
J Wo werden die System properties gespeichert Allgemeine Java-Themen 12
DEvent log4j, commons logging, log4j.properties and co Allgemeine Java-Themen 12
D Ordner mit *.properties in classpath ? Allgemeine Java-Themen 5
P Encoding-Probleme bei Properties-Dateien Allgemeine Java-Themen 5
A Hardware Properties auslesen Allgemeine Java-Themen 10
P Properties liest nicht alles aus Datei aus Allgemeine Java-Themen 17
J Properties sortieren Allgemeine Java-Themen 6
I Properties.contains("Hell*orld"); Allgemeine Java-Themen 14
G Probleme beim Sichern von Properties Allgemeine Java-Themen 2
N Java Properties Allgemeine Java-Themen 14
L "globale" properties Datei Allgemeine Java-Themen 4
V Properties Key als String mit =? Allgemeine Java-Themen 3
G Beans und transiente Properties Allgemeine Java-Themen 4
MQue properties- Datei Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben