2011-04-08 8 views
8

¿Hay alguna forma de guardar Propiedades en Java con algún formato utilizando el objeto Propiedades? ¿Hay alguna manera de introducir nuevas líneas entre las entradas? O comentarios antes de cada tecla?Guardar propiedades en un archivo con formato JAVA

Sé que esto se puede hacer fácilmente con E/S normal, pero me pregunto si hay una manera de hacerlo con el objeto de propiedades.

+4

¿Qué significa "JAVA" representan? –

Respuesta

19

La clave para escribir un comentario entre cada conjunto de propiedades es almacenarlas en varios objetos Properties.

es decir

FileOutputStream fos = new FileOutputStream("c:/myconfig.property"); 
Properties prop = new Properties(); 
prop.put("com.app.port", "8080"); 
prop.put("com.app.ip", "127.0.0.1"); 

prop.store(fos, "A Test to write properties"); 
fos.flush(); 

Properties prop2 = new Properties(); 
prop2.put("com.app.another", "Hello World"); 
prop2.store(fos, "Where does this go?"); 
fos.flush(); 

fos.close(); 

Esto producirá una salida tal como

#A Test to write properties 
#Fri Apr 08 15:28:26 ADT 2011 
com.app.ip=127.0.0.1 
com.app.port=8080 
#Where does this go? 
#Fri Apr 08 15:28:26 ADT 2011 
com.app.another=Hello World 
+0

Esto me dará todo el control que necesito. Usando diferentes objetos de Propiedades, puedo agregar los comentarios que quiero y almacenarlos en el orden que quiero. ¡Gracias! – javydreamercsw

0

No. ¿Cómo sabría el elemento Propiedades qué comentarios escribir antes de cada tecla?

Puede incluir comentarios a nivel de archivo cuando Properties.store(Writer, String). Después de ese comentario y un comentario de marca de tiempo:

Then every entry in this Properties table is written out, one per line. 
    For each entry the key string is written, then an ASCII =, then the associated 
    element string. For the key, all space characters are written with a 
    preceding \ character. For the element, leading space characters, but not 
    embedded or trailing space characters, are written with a preceding \ character. 
    The key and element characters #, !, =, and : are written with a preceding 
    backslash to ensure that they are properly loaded. 

Por otro lado, se puede proporcionar instrucciones sobre cómo escribir líneas adicionales y los comentarios en los archivos de propiedades - - utilizando un objeto Properties como fuente de datos.

0

El objeto Properties en sí no retiene ningún detalle sobre la estructura de cómo se guardó en el archivo. Simplemente tiene un mapa de datos, que de hecho significa que ni siquiera será necesario escribirlos en el mismo orden en que fueron leídos. Tendrá que usar E/S normal para mantener el formato y realizar los cambios deseados.

2

he hecho una clase que se encarga de los comentarios en las propiedades. Ambos comentarios generales de encabezado y comentarios para propiedades individuales.

Tenga una mirada en: CommentedProperties JavaDoc

el archivo JAR se puede descargar aquí: Download jar file from sourceforge

+2

Por favor, inserte el punto principal de su respuesta aquí como ejemplo, por lo que en caso de enlaces rotos, una respuesta aún se puede encontrar aquí. ¡Gracias! – Samoth

0

La clase CommentedProperties

analizará las propiedades

## General comment line 1 
## General comment line 2 
##!General comment line 3, is ignored and not loaded 
## General comment line 4 


# Property A comment line 1 
A=1 

# Property B comment line 1 
# Property B comment line 2 
B=2 

! Property C comment line 1 
! Property C comment line 2 

C=3 
D=4 

# Property E comment line 1 
! Property E comment line 2 
E=5 

# Property F comment line 1 
#!Property F comment line 2, is ignored and not loaded 
! Property F comment line 3 
F=5 

las propiedades del archivo observaciones se :

General comment line 1 
General comment line 2 
General comment line 4 

Así propiedad "A" comentarios es:

Property A comment line 1 

Así propiedad "B" los comentarios son:

Property B comment line 1 
Property B comment line 2 

Así propiedad "C"

Property C comment line 1 
Property C comment line 2 

Así propiedad " D "los comentarios están vacíos.

Así propiedad "E", comenta es:

Property E comment line 1 
Property E comment line 2 

Así propiedad "F" los comentarios son:

Property F comment line 1 
Property F comment line 3 
+0

Genial, pero completamente opuesto a lo que se pide: P – javydreamercsw

Cuestiones relacionadas