2012-06-01 2 views
5

У меня есть сообщение, как показано ниже в моем файле conf.динамическое чтение/добавление значения параметра conf файла с помощью свойств

text.message = Richard должен быть отправлен в School в 01/06/2012/1days.

Все выделенные поля будут переменными.

Я хочу прочитать эту строку text.me и вставить значение из моей java с помощью свойств.

Я знаю, как читать всю строку с помощью Prop, но не знаю, как читать, как выше String.

text.message = #name# Необходимо перейти на # место # в # дату #/# дней #.

  1. Как я могу прочитать приведенную выше строку из conf с помощью свойств и динамически вставить данные?

  2. Это может быть дата или дни в строке. Как я могу включить и выключить эти параметры?

Спасибо заранее.

+0

(HTTP [Что вы пробовали?]: //www.whathaveyoutried. com /) –

ответ

15

Для этого вы можете использовать API MessageFormat.

Kickoff пример:

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

с

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 
4

Вы можете использовать класс MessageFormat, который заменяет динамические заполнители в строке требуемыми значениями.

Например, следующий код ...

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); 

... произведет следующий вывод:

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

Вы можете просто получить образец от вашего Properties объекта, а затем применить Перевод MessageFormat.

+0

плюс 1. Спасибо. – kitokid

-1

Вы можете попробовать этот код, чтобы получить справку о файле свойств.

App.java

import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.util.Properties; 

public class App { 
public static void main(String[] args) { 

Properties prop = new Properties(); 
OutputStream output = null; 

try { 

    output = new FileOutputStream("config.properties"); 

    // set the properties value 
    prop.setProperty("database", "localhost"); 
    prop.setProperty("dbuser", "ayushman"); 
    prop.setProperty("dbpassword", "password"); 

    // save properties to project root folder 
    prop.store(output, null); 

} catch (IOException io) { 
    io.printStackTrace(); 
} finally { 
    if (output != null) { 
     try { 
      output.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

} 
} 
} 

Выход

config.properties

#Fri Jan 17 22:37:45 MYT 2014 
dbpassword=password 
database=localhost 
dbuser=ayushman 
Смежные вопросы