2012-06-01 13 views
5

Tengo un mensaje como el siguiente en mi archivo conf.leer dinámicamente/agregar valor al parámetro del archivo conf con propiedades

text.message = Richard tiene que ir a School en 01/06/2012/1days.

Todo el campo resaltado será variable.

Quiero leer este text.me cadena e insertar el valor de mi java usando Propiedades.

Sé cómo leer toda la cadena usando Prop, pero no sé cómo leer la cadena anterior, que será como.

text.message = #name# tiene que ir a # lugar # en # fecha #/# días #.

  1. ¿cómo puedo leer la cadena anterior de la configuración usando Propiedades e insertar datos dinámicamente?

  2. Puede ser una fecha o días en la cadena. ¿Cómo puedo activar y desactivar esos parámetros?

Thanks ahead.

+0

(http [¿Qué has intentado?]: //www.whathaveyoutried. com /) –

Respuesta

15

Puede usar la API MessageFormat para esto.

ejemplo Comienzo:

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

con

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

Puede usar la clase MessageFormat, que reemplaza marcadores de posición dinámicos en una cadena con los valores deseados.

Por ejemplo, el siguiente código ...

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

... producirá el siguiente resultado:

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

Usted puede conseguir simplemente el patrón de su objeto Properties, a continuación, aplicar el Traducción de MessageFormat.

+0

plus 1. Gracias. – kitokid

-1

Puede probar este código para obtener ayuda acerca de archivo de propiedades.

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

} 
} 
} 

salida

config.properties

#Fri Jan 17 22:37:45 MYT 2014 
dbpassword=password 
database=localhost 
dbuser=ayushman 
Cuestiones relacionadas