This week's book giveaway is in the Servlets forum.
We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line!
See this thread for details.
The moose likes Java in General and the fly likes Multi-dimensional properties file Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Multi-dimensional properties file" Watch "Multi-dimensional properties file" New topic
Author

Multi-dimensional properties file

Mary Shields
Greenhorn

Joined: Apr 29, 2008
Posts: 7
Is there a way to incorporate a multi-dimensional 'array' in a properties file?

In my situation, I want to look up a key and find associated field values for that key. For example: Name(key), address, phone number, etc.

Thank you.
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 37953
    
  22
Would you go through a text file and read name, address, phone number, and put them into a Map with name as "K" and address as "V?" That sounds easy enough. You could incorporate address, phone number, etc into a single class.

Is that what you mean?
Norm Radder
Ranch Hand

Joined: Aug 10, 2005
Posts: 685
Since a Properties extends Hashtable, you have only a single key.
To have multiple dimensions, you can create dotted and suffixed key names for each of the sub values. For example:
Name1=john doe
Name1.address=123 river drive
Name1.phone=232-333-3333

Then use string concatenation to build the keys.
Mary Shields
Greenhorn

Joined: Apr 29, 2008
Posts: 7
What I have is a table that uses a key to get multiple fields related to that key, for example, use 'name' to get the other fields (address, phone number, etc.). The values in the table change rarely, and there are very few entries. Maybe the properties file isn't the way to go?
Norm Radder
Ranch Hand

Joined: Aug 10, 2005
Posts: 685
Not sure how you use one key to get multiple values from the same table. Surely you need one key per value. Or one table per value.
One way would be to have a record that contains the values as fields. Then the key would return the record with multiple values.
[ July 07, 2008: Message edited by: Norm Radder ]
Mary Shields
Greenhorn

Joined: Apr 29, 2008
Posts: 7
I went ahead with the properties file, and delimited the values with commas. Then, used String.split to carve out the individual fields. The amount of data I'm using is trivial, so this works for me.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41091
    
  44
I'd consider creating a subclass of java.util.Properties. It would have an additional method that returns a Map of all those properties whose key starts with a given prefix ("name1" is your example). That can't be much more than 10 lines of code.


Ping & DNS - my free Android networking tools app
 
jQuery in Action, 2nd edition
 
subject: Multi-dimensional properties file
 
Similar Threads
2d arrays and form bean
about hashmap implementation of arraylist
When to stop using a properties file?
creating table on client side
How find out how many dimensions an objectArray has?