A classe Properties representa um conjunto persistente de propriedades. As propriedades podem ser salvas em um fluxo ou carregadas de um fluxo. Ele pertence ao pacote java.util . As propriedades definem a seguinte variável de instância. Esta variável contém uma lista de propriedades padrão associada a um objeto Propriedades

Padrões de propriedades: Esta variável contém uma lista de propriedades padrão associada a um objeto Propriedades.
 

Características da classe Propriedades:

  • Propriedades é uma subclasse de Hashtable .
  • É usado para manter uma lista de valores em que a chave é uma string e o valor também é uma string, ou seja; ele pode ser usado para armazenar e recuperar dados de tipo de string do arquivo de propriedades.
  • A classe de propriedades pode especificar outra lista de propriedades, pois é o padrão. Se uma propriedade de chave específica não estiver presente na lista de Propriedades original, as propriedades padrão serão pesquisadas.
  • O objeto de propriedades não requer sincronização externa e vários threads podem compartilhar um único objeto de propriedades.
  • Além disso, pode ser usado para recuperar as propriedades do sistema.

Vantagem de um arquivo de propriedades

Caso algum dado seja alterado no registro de propriedades, você não precisa recompilar a classe java. É utilizado para armazenar dados que devem ser alterados habitualmente.

Observação: a classe Properties não herda o conceito de fator de carga de sua superclasse, Hashtable .

Declaração

public class Properties extends Hashtable<Object,​Object>

Construtores de Propriedades 

1. Propriedades(): Cria um objeto Propriedades que não possui valores padrão. 

Propriedades p = novas Propriedades();

2. Propriedades (Propriedades propDefault): O segundo cria um objeto que usa propDefault como seu valor padrão. 

Propriedades p = novas Propriedades (Propriedades propDefault);

Exemplo 1: O programa abaixo mostra como usar a classe Propriedades para obter informações do arquivo de propriedades. 

Vamos criar um arquivo de propriedades e nomeá-lo como db.properties .

db.properties

username = coder
password = geeksforgeeks

Código

// Java program to demonstrate Properties class to get
// information from the properties file
  
import java.util.*;
import java.io.*;
public class GFG {
    public static void main(String[] args) throws Exception
    {
        // create a reader object on the properties file
        FileReader reader = new FileReader("db.properties");
  
        // create properties object
        Properties p = new Properties();
  
        // Add a wrapper around reader object
        p.load(reader);
  
        // access properties data
        System.out.println(p.getProperty("username"));
        System.out.println(p.getProperty("password"));
    }
}

Saída

imprimir propriedades de um arquivo

Exemplo 2: O programa abaixo mostra como usar a classe Propriedades para obter todas as propriedades do sistema. Usando o método System.getProperties(), podemos obter todas as propriedades do sistema.

// Java program to demonstrate Properties class to get all
// the system properties
  
import java.util.*;
import java.io.*;
  
public class GFG {
    public static void main(String[] args) throws Exception
    {
        // get all the system properties
        Properties p = System.getProperties();
  
        // stores set of properties information
        Set set = p.entrySet();
  
        // iterate over the set
        Iterator itr = set.iterator();
        while (itr.hasNext()) {
  
            // print each property
            Map.Entry entry = (Map.Entry)itr.next();
            System.out.println(entry.getKey() + " = "
                               + entry.getValue());
        }
    }
}

Saída

obter todas as propriedades do sistema

Exemplo 3: O programa abaixo mostra como usar a classe Propriedades para criar um arquivo de propriedades.

// Java program to demonstrate Properties class to create
// the properties file
  
import java.util.*;
import java.io.*;
  
public class GFG {
    public static void main(String[] args) throws Exception
    {
        // create an instance of Properties
        Properties p = new Properties();
  
        // add properties to it
        p.setProperty("name", "Ganesh Chowdhary Sadanala");
        p.setProperty("email",
                      "ganeshs.gfg@gmail.com");
  
        // store the properties to a file
        p.store(new FileWriter("info.properties"),
                "GeeksforGeeks Properties Example");
    }
}

Saída

use a classe Propriedades para criar um arquivo de propriedades.

Métodos de Propriedades

MÉTODO

DESCRIÇÃO

getProperty (chave String)Pesquisa a propriedade com a chave especificada nesta lista de propriedades.
getProperty (String key, String defaultValue)Pesquisa a propriedade com a chave especificada nesta lista de propriedades.
lista (saída PrintStream)Imprime esta lista de propriedades no fluxo de saída especificado.
lista (saída do PrintWriter)Imprime esta lista de propriedades no fluxo de saída especificado.
carregar (InputStream inStream)Lê uma lista de propriedades (pares de chave e elemento) do fluxo de bytes de entrada.
carregar (leitor leitor)Lê uma lista de propriedades (pares de chave e elemento) do fluxo de caracteres de entrada em um formato simples orientado por linha.
loadFromXML (InputStream em)Carrega todas as propriedades representadas pelo documento XML no fluxo de entrada especificado nesta tabela de propriedades.
propertyNames()Retorna uma enumeração de todas as chaves nesta lista de propriedades, incluindo chaves distintas na lista de propriedades padrão se uma chave com o mesmo nome ainda não tiver sido encontrada na lista de propriedades principais.
salvar (saída de OutputStream, comentários de string)

Obsoleto .

Este método não lança uma IOException se ocorrer um erro de E / S ao salvar a lista de propriedades.

setProperty (chave da string, valor da string)Chama o método Hashtable put.
armazenar (saída de OutputStream, comentários de string)Grava essa lista de propriedades (pares de chave e elemento) nesta tabela de Propriedades para o fluxo de saída em um formato adequado para carregar em uma tabela de Propriedades usando o método load (InputStream).
store (escritor do escritor, comentários da string)Grava essa lista de propriedades (pares de chave e elemento) nesta tabela de Propriedades no fluxo de caracteres de saída em um formato adequado para usar o método load (Reader).
storeToXML (OutputStream os, String comentário)Emite um documento XML que representa todas as propriedades contidas nesta tabela.
storeToXML (OutputStream os, comentário de string, codificação de string)Emite um documento XML que representa todas as propriedades contidas nesta tabela, usando a codificação especificada.
storeToXML (OutputStream os, String comentário, Charset charset)Emite um documento XML que representa todas as propriedades contidas nesta tabela, usando a codificação especificada.
stringPropertyNames()Retorna um conjunto não modificável de chaves desta lista de propriedades em que a chave e seu valor correspondente são strings, incluindo chaves distintas na lista de propriedades padrão se uma chave com o mesmo nome ainda não tiver sido encontrada na lista de propriedades principais.

Métodos declarados na classe java.util.Hashtable

MÉTODO

DESCRIÇÃO

Claro()Limpa esta tabela de hash para que não contenha chaves.
 clone()Cria uma cópia superficial desta tabela de hash.
compute (tecla K, BiFunção <? super K,? super V,? extends V> remapeamentoFunção)Tenta calcular um mapeamento para a chave especificada e seu valor mapeado atual (ou nulo se não houver mapeamento atual).
computeIfAbsent (tecla K, Função <? super K,? extends V> mappingFunction)Se a chave especificada ainda não estiver associada a um valor (ou estiver mapeada para nulo), tenta calcular seu valor usando a função de mapeamento fornecida e o insere neste mapa, a menos que seja nulo.
computeIfPresent (K key, BiFunction <? super K,? super V,? extends V> remappingFunction)Se o valor da chave especificada estiver presente e não for nulo, tenta calcular um novo mapeamento, dada a chave e seu valor mapeado atual.
contém (valor do objeto)Testa se alguma chave é mapeada para o valor especificado nesta tabela de hash.
containsKey (chave do objeto)Testa se o objeto especificado é uma chave nesta tabela de hash.
containsValue (valor do objeto)Retorna verdadeiro se esta tabela de hash mapeia uma ou mais chaves para este valor.
elementos()Retorna uma enumeração dos valores nesta tabela de hash.
entrySet()Retorna uma visualização Set dos mapeamentos contidos neste mapa.
é igual a (objeto o)Compara o objeto especificado com este mapa para igualdade, de acordo com a definição na interface do mapa.
get (chave do objeto)Retorna o valor para o qual a chave especificada é mapeada ou nulo se este mapa não contém mapeamento para a chave.
hashCode()Retorna o valor do código hash para este mapa de acordo com a definição na interface do mapa.
está vazia()Testa se esta tabela de hash não mapeia chaves para valores.
chaves()Retorna uma enumeração das chaves nesta tabela de hash.
conjunto de chaves()Retorna uma visualização Set das chaves contidas neste mapa.
mesclar (tecla K, valor V, BiFunção <? super V,? super V,? estende V> função remapeamento)Se a chave especificada ainda não estiver associada a um valor ou estiver associada a nulo, associa-a ao valor não nulo fornecido.
colocar (chave K, valor V)Mapeia a chave especificada para o valor especificado nesta tabela de hash.
putAll (Map <? estende K,? estende V> t)Copia todos os mapeamentos do mapa especificado para esta tabela de hash.
rehash()Aumenta a capacidade e reorganiza internamente esta hashtable, para acomodar e acessar suas entradas de forma mais eficiente.
remover (chave do objeto)Remove a chave (e seu valor correspondente) desta tabela de hash.
Tamanho()Retorna o número de chaves nesta tabela de hash.
para sequenciar()Retorna uma representação de string deste objeto Hashtable na forma de um conjunto de entradas, entre colchetes e separados pelos caracteres ASCII ”,” (vírgula e espaço).
valores()Retorna uma visualização de Coleção dos valores contidos neste mapa.

Métodos declarados na interface java.util.Map

MÉTODO

DESCRIÇÃO

forEach (ação BiConsumer <? super K,? super V>)Executa a ação fornecida para cada entrada neste mapa até que todas as entradas tenham sido processadas ou a ação lance uma exceção.
getOrDefault (chave do objeto, V defaultValue)Retorna o valor para o qual a chave especificada é mapeada ou defaultValue se este mapa não contiver mapeamento para a chave.
putIfAbsent (chave K, valor V)Se a chave especificada ainda não estiver associada a um valor (ou estiver mapeada para nulo), a associa ao valor fornecido e retorna nulo, caso contrário, retorna o valor atual.
remove (chave do objeto, valor do objeto)Remove a entrada para a chave especificada apenas se ela estiver atualmente mapeada para o valor especificado.
substituir (chave K, valor V)Substitui a entrada da chave especificada apenas se ela estiver mapeada para algum valor.
substituir (chave K, V antigoValor, V novoValor)Substitui a entrada da chave especificada apenas se atualmente mapeada para o valor especificado.
substituirAll (BiFunction <? super K,? super V,? extends V> função)Substitui o valor de cada entrada com o resultado de invocar a função fornecida nessa entrada até que todas as entradas tenham sido processadas ou a função lance uma exceção.