Uma lista de propriedades pode conter outra lista de propriedades como seu "valor padrão"; se a chave da propriedade não puder ser encontrada na lista de propriedades original, a segunda lista de propriedades será pesquisada.
Como as propriedades herdam de Hashtable, os métodos put e putAll podem ser aplicados ao objeto Properties. Porém, esses dois métodos não são recomendados porque permitem ao chamador inserir itens cujas chaves ou valores não são Strings. Em vez disso, use o método setProperty. Se o método store ou save for chamado em um objeto Properties "inseguro" (ou seja, contendo uma chave ou valor que não seja String), a chamada falhará. Da mesma forma, se o método propertyNames ou list for chamado em um objeto Properties "inseguro" (ou seja, contendo uma chave que não seja String), a chamada falhará.
Os arquivos de propriedades são frequentemente visíveis em aplicativos JAVA e também são um tipo de arquivo particularmente importante. É usado para configurar algumas informações do aplicativo, mas essas informações geralmente são dados relativamente pequenos. Não há necessidade de usar um arquivo de banco de dados para salvá-los, mas use um arquivo de texto geral para salvá-los. , ele pode ser armazenado e salvo. Não é muito conveniente de ler, mas é diferente se for salvo como um arquivo de propriedades. Os arquivos de propriedades possuem valores de chave correspondentes. No pacote JAVA, existem classes especiais para operar arquivos de propriedades. . Esta classe é a classe java.uitl.Properties Como a classe Properties é uma classe de coleção, Properties irá ler e gravar propriedades em uma coleção.
Nota: O código a seguir não captura as exceções lançadas. Ao escrever o programa, você deve prestar atenção à captura de exceções.
A classe Properties herda a classe Hashtable e adota um método de armazenamento correspondente aos valores-chave. Qual é a conveniência de usar a classe Properties para gerenciar arquivos de propriedades? A classe Properties possui métodos especiais de leitura e gravação para ler e gravar arquivos de atributos de propriedades. Você não precisa se preocupar com o formato de leitura e gravação. Você só precisa fornecer um fluxo de leitura e gravação para a classe Properties. Os métodos de propriedades usados para ler e gravar arquivos de propriedades são:
Copie o código do código da seguinte forma:
//Método para ler o fluxo do arquivo de atributos
carregamento vazio público (InputStream inStream) lança IOException {}
//Método para escrever o fluxo do arquivo de atributos
public void store (OutputStream out, String comments) lança IOException {}
Primeiro, vamos ver como ler as propriedades de um arquivo de propriedades.
Suponha que criamos um novo arquivo de propriedades denominado prop.properties com o seguinte conteúdo:
Copie o código do código da seguinte forma:
nome do site=abcjava
siteurl=www.abcjava.com
A primeira etapa que precisamos fazer é ler o arquivo no objeto da classe Properties. Como um parâmetro de carregamento é InputStream, podemos usar a subclasse InputStream FileInputStream para ler o arquivo de propriedades no objeto Properties. use o construtor FileInputStream(String name):
Copie o código do código da seguinte forma:
Properties prop = new Properties();//Objeto de coleção de propriedades
FileInputStream fis = new FileInputStream("prop.properties");//Fluxo do arquivo de propriedades
prop.load(fis);//Carrega o fluxo do arquivo de propriedades no objeto Properties
Depois de saber como ler o arquivo de propriedades, temos outra coisa muito importante a fazer, que é modificar e adicionar novas propriedades ao arquivo de propriedades. Aqui usamos o método public void store (OutputStream out, String comments). a coleção de propriedades Para um fluxo OutputStream, assim como o fluxo InputStream, sua subclasse FileOutputStream (nome da string) também é usada aqui, portanto não entrarei em detalhes aqui.
Antes de salvar a coleção de propriedades no arquivo, temos mais uma coisa a fazer: modificar e adicionar novas propriedades à coleção de propriedades. Um método usado aqui é setProperty(String key, String. valor), este método consiste em modificar o valor da chave quando a chave especificada existir na coleção de atributos. Se não existir, crie uma nova chave. Ela também é salva por meio do relacionamento chave-valor, mas vale a pena observar. que a classe Properties herda Desde Hashtable, também é possível salvar usando os métodos put e putAll do Hashtable, mas o uso desses dois métodos é fortemente desencorajado porque permitem ao chamador inserir itens cujas chaves ou valores não são Strings. Em vez disso, use o método setProperty. Se o método store ou save for chamado em um objeto Properties que esteja "em risco" (ou seja, contenha uma chave ou valor que não seja String), a chamada falhará. Bom, vamos dar uma olhada nos procedimentos para modificar, adicionar e salvar atributos:
Copie o código do código da seguinte forma:
//Modifica o valor do atributo do nome do site
prop.setProperty("nomedosite", "Boxcode");
//Adiciona um novo atributo studio
prop.setProperty("estúdio", "Boxcode Estúdio");
//fluxo de saída do arquivo
FileOutputStream fos = new FileOutputStream("prop.properties");
//Salva a coleção Properties no stream
prop.store(fos, "Copyright (c) Boxcode Studio");
fos.close(); //Fecha o fluxo
A seguir está o código fonte de todo o programa:
Copie o código do código da seguinte forma:
importar java.io.FileInputStream;
importar java.io.FileOutputStream;
importar java.util.Properties;
classe pública Editor de Propriedade {
public static void main(String[] args) lança exceção {
Properties prop = new Properties(); // Objeto de coleção de propriedades
FileInputStream fis = new FileInputStream("prop.properties");//Fluxo de entrada do arquivo de propriedades
prop.load(fis);//Carrega o fluxo do arquivo de propriedades no objeto Properties
fis.close(); //Fecha o fluxo
// Obtém o valor do atributo, o nome do site foi definido no arquivo
System.out.println("Obter valor da propriedade: sitename=" + prop.getProperty("sitename"));
// Obtenha o valor do atributo. O país não está definido no arquivo. Um valor padrão será retornado neste programa, mas o arquivo de atributos não será modificado.
System.out.println("Obter valor da propriedade: country=" + prop.getProperty("país", "China"));
// Modifica o valor do atributo do nome do site
prop.setProperty("nomedosite", "Boxcode");
//Adiciona um novo atributo studio
prop.setProperty("estúdio", "Boxcode Estúdio");
//fluxo de saída do arquivo
FileOutputStream fos = new FileOutputStream("prop.properties");
//Salva a coleção Properties no stream
prop.store(fos, "Copyright (c) Boxcode Studio");
fos.close(); //Fecha o fluxo
}
}