kitokid
kitokid

Reputation: 3117

dynamically read/add value to the parameter of conf file with Properties

I have a message like below in my conf file.

text.message = Richard has to go to School in 01/06/2012 / 1days.

All highlighted field will be variable.

I want to read this text.me string and insert the value from my java using Properties.

I know how to read the whole string using Prop, but don't know how to read like above String which will be like.

text.message = #name# has to go to #place# in #date# / #days#.

  1. how can I read the above string from the conf using Properties and insert data dynamically?

  2. It can be either date or days in the string. How I can turn on and off between those parameters?

Thanks ahead.

Upvotes: 5

Views: 31822

Answers (2)

Mansoor Siddiqui
Mansoor Siddiqui

Reputation: 21663

You can use the MessageFormat class, which replaces dynamic placeholders in a string with the desired values.

For example, the following code...

String pattern = "{0} has to go to {1} in {2,date} / {3,number,integer} days.";
String result = MessageFormat.format(pattern, "Richard", "school", new Date(), 5);
System.out.println(result);

...will produce the following output:

Richard has to go to school in 31-May-2012 / 5 days.

You can simply get the pattern from your Properties object, then apply the MessageFormat translation.

Upvotes: 3

BalusC
BalusC

Reputation: 1108742

You can use the MessageFormat API for this.

Kickoff example:

text.message = {0} has to go to {1} in {2,date,dd/MM/yyyy} / {3}

with

String message = properties.getProperty("text.message");
String formattedMessage = MessageFormat.format(message, "Richard", "School", new Date(), "1days");
System.out.println(formattedMessage); // Richard has to go to School in 31/05/2012 / 1days

Upvotes: 16

Related Questions