using Properties files properly

A

antoine

Hello,

I was not very happy with my INI file handling and finally decided to
migrate to the more common "properties" file as defined in JDK (I'm
using 1.4)

here's the thing: I have a long list of properties, that I grouped like
that:

item1.prop1
item1.prop2
item1.prop3
item1.prop4

item2.prop1
item2.prop2
item2.prop3
item2.prop4

everything works OK, it loads, saves, and my app works. however there
are times when I need to access the properties file and modify it
manually (using a text editor). that's when I realized that all
properties were "reorganized" pretty randomly in my file:

item2.prop3
item1.prop2
item2.prop4
item1.prop4
item1.prop3
item2.prop1
item1.prop1
item2.prop2

it becomes very complicated to find what I'm looking for...
is there a simple way to make things better ?
 
R

Roedy Green

it becomes very complicated to find what I'm looking for...
is there a simple way to make things better ?

The problem is Properties is a HashMap/Hashtable (I forget which).
HashMaps don't have an order. They use the effective random ordering
of hash to slot number, i.e. hashCode/length hasharray.

What can you do about it?

1. Write your own save method that does a sort then save.

2. use the sort feature of your text editor when you set out to edit
the file.

3. write your own properties class that has the features you want. I
wrote one that allows multiple values per key. You are welcome to it.
Just send me an email with the subject MultiProperties.

4. Use the Preferences class.
 
A

Andrew Thompson

..there
are times when I need to access the properties file and modify it
manually

One alternative is to write a little Java based editor
to load and save the properties. You could provide
a sorted list of property names on the left, and a single
text area on the right to edit the value of the property.

Easy peasy..
..(using a text editor)

Ughh.. Write an editor. A couple of hours spent writing
an editor now, might save you dozens of hours over the
long run.

HTH
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,904
Latest member
HealthyVisionsCBDPrice

Latest Threads

Top