Una lista de propiedades puede contener otra lista de propiedades como su "valor predeterminado"; si la clave de propiedad no se puede encontrar en la lista de propiedades original, se busca en la segunda lista de propiedades.
Debido a que las Propiedades heredan de Hashtable, los métodos put y putAll se pueden aplicar al objeto Propiedades. Sin embargo, estos dos métodos no se recomiendan porque permiten a la persona que llama insertar elementos cuyas claves o valores no sean cadenas. En su lugar, utilice el método setProperty. Si se llama al método store o save en un objeto Properties "inseguro" (es decir, que contiene una clave o valor que no es String), la llamada fallará. De manera similar, si se llama al método propertyNames o list en un objeto Properties "inseguro" (es decir, que contiene una clave que no es String), la llamada fallará.
Los archivos de propiedades suelen ser visibles en las aplicaciones JAVA y también son un tipo de archivo particularmente importante. Se utiliza para configurar cierta información de la aplicación, pero esta información generalmente es información relativamente pequeña. No es necesario usar un archivo de base de datos para guardarla, pero use un archivo de texto general para guardarla directamente a través de Archivo. , puede almacenarse y guardarse. No es muy conveniente leerlo, pero es diferente si se guarda como un archivo de propiedades. Los archivos de propiedades tienen valores clave correspondientes. En el paquete JAVA, existen clases especiales para operar archivos de propiedades. . Esta clase es la clase java.uitl.Properties Dado que la clase Propiedades es una clase de colección, Propiedades leerá y escribirá propiedades en una colección.
Nota: El siguiente código no captura las excepciones lanzadas. Al escribir el programa, se recomienda prestar atención a la captura de excepciones.
La clase Propiedades hereda la clase Hashtable y adopta un método de almacenamiento correspondiente a los valores clave. ¿Cuál es la conveniencia de usar la clase Propiedades para administrar archivos de propiedades? La clase Propiedades tiene métodos especiales de lectura y escritura para leer y escribir archivos de atributos de Propiedades. No tiene que preocuparse por el formato de lectura y escritura. Solo necesita proporcionar un flujo de lectura y escritura para la clase Propiedades. Los métodos de propiedades utilizados para leer y escribir archivos de propiedades son:
Copie el código de código de la siguiente manera:
//Método para leer el flujo del archivo de atributos
carga vacía pública (InputStream inStream) lanza IOException {}
//Método para escribir flujo de archivo de atributos
la tienda pública vacía (OutputStream out, comentarios de cadena) arroja IOException {}
Primero, veamos cómo leer propiedades de un archivo de propiedades.
Supongamos que hemos creado un nuevo archivo de propiedades llamado prop.properties con el siguiente contenido:
Copie el código de código de la siguiente manera:
nombre del sitio = abcjava
URL del sitio=www.abcjava.com
El primer paso que debemos hacer es leer el archivo en el objeto de la clase Propiedades. Dado que un parámetro de carga es InputStream, podemos usar la subclase FileInputStream de InputStream para leer el archivo de propiedades en el objeto Propiedades. utilice el constructor FileInputStream(nombre de cadena):
Copie el código de código de la siguiente manera:
Propiedades prop = new Propiedades();//Objeto de colección de propiedades
FileInputStream fis = new FileInputStream("prop.properties");//Secuencia de archivos de propiedades
prop.load(fis);//Carga la secuencia del archivo de propiedades en el objeto Propiedades
Después de saber cómo leer el archivo de propiedades, tenemos otra cosa muy importante que hacer, que es modificar y agregar nuevas propiedades al archivo de propiedades. Aquí usamos el método de almacenamiento público vacío (OutputStream out, String comments). la colección de propiedades Para una secuencia OutputStream, al igual que la secuencia InputStream, su subclase FileOutputStream (nombre de cadena) también se usa aquí, por lo que no entraré en detalles aquí.
Antes de guardar la colección de propiedades en el archivo, tenemos una cosa más que hacer: cómo modificar y agregar nuevas propiedades a la colección de propiedades. Un método utilizado aquí es setProperty(String key, String). valor), este método consiste en modificar el valor de la clave cuando la clave especificada existe en la colección de atributos. Si no existe, cree una nueva clave. También se guarda a través de la relación clave-valor, pero vale la pena señalarlo. que hereda la clase Propiedades Desde Hashtable, también es posible guardar usando los métodos put y putAll de Hashtable, pero se desaconseja encarecidamente el uso de estos dos métodos porque permiten a la persona que llama insertar elementos cuyas claves o valores no sean cadenas. En su lugar, utilice el método setProperty. Si se llama al método store o save en un objeto Propiedades que está "en riesgo" (es decir, que contiene una clave o valor que no es una cadena), la llamada fallará. Bueno, echemos un vistazo a los procedimientos para modificar, agregar y guardar atributos:
Copie el código de código de la siguiente manera:
//Modificar el valor del atributo del nombre del sitio
prop.setProperty("nombre del sitio", "Código de caja");
//Agregar un nuevo estudio de atributos
prop.setProperty("estudio", "Boxcode Studio");
// Flujo de salida del archivo
FileOutputStream fos = new FileOutputStream("prop.properties");
//Guardar la colección de Propiedades en la secuencia
prop.store(fos, "Copyright (c) Boxcode Studio");
fos.close();//Cerrar la transmisión
El siguiente es el código fuente de todo el programa:
Copie el código de código de la siguiente manera:
importar java.io.FileInputStream;
importar java.io.FileOutputStream;
importar java.util.Properties;
Editor de propiedades de clase pública {
public static void main (String [] args) lanza una excepción {
Propiedades prop = new Propiedades(); // Objeto de colección de propiedades.
FileInputStream fis = new FileInputStream("prop.properties");//Secuencia de entrada del archivo de propiedades
prop.load(fis);//Carga la secuencia del archivo de propiedades en el objeto Propiedades
fis.close(); // Cerrar la secuencia
// Obtener el valor del atributo, el nombre del sitio se ha definido en el archivo
System.out.println("Obtener valor de propiedad: nombre del sitio=" + prop.getProperty("nombre del sitio"));
// Obtener el valor del atributo. El país no está definido en el archivo. Se devolverá un valor predeterminado en este programa, pero el archivo de atributos no se modificará.
System.out.println("Obtener valor de propiedad: país=" + prop.getProperty("país", "China"));
// Modificar el valor del atributo del nombre del sitio
prop.setProperty("nombre del sitio", "Código de caja");
//Agregar un nuevo estudio de atributos
prop.setProperty("estudio", "Boxcode Studio");
// Flujo de salida del archivo
FileOutputStream fos = new FileOutputStream("prop.properties");
// Guarda la colección de Propiedades en la secuencia
prop.store(fos, "Copyright (c) Boxcode Studio");
fos.close();//Cerrar la transmisión
}
}