Java 属性类

Java 属性类

属性类代表一个持久的属性集。属性可以被保存到一个流中或从一个流中加载。它属于 java.util 包。 Properties 定义了以下实例变量。这个变量持有一个与 Properties 对象相关的默认属性列表。

Properties defaults: 这个变量持有一个与Properties对象相关的默认属性列表。

Properties类的特点

  • Properties 是Hashtable的一个子类。
  • 它被用来维护一个值列表,其中的键是一个字符串,值也是一个字符串,即;它可以用来存储和检索属性文件中的字符串类型数据。
  • 属性类可以指定其他属性列表,因为它是默认的。如果一个特定的关键属性不存在于原始的属性列表中,默认的属性将被搜索到。
  • 属性对象不需要外部同步,多个线程可以共享一个属性对象。
  • 此外,它还可以用来检索系统的属性。

属性文件 的优点

如果任何数据从属性记录中被改变,你不必重新编译java类。它被利用来存储要习惯性改变的数据。

注意: 属性类并没有从它的超类 Hashtable 继承负载因子的概念 。

声明

public class Properties extends Hashtable<Object,​Object>

属性的构造器

1.Properties(): 这将创建一个没有默认值的 Properties 对象。

Properties p = new Properties()

2.Properties(Properties propDefault): 第二个方法是创建一个使用 propDefault 作为默认值的对象。

Properties p = new Properties(Properties propDefault)

例1: 下面的程序展示了如何使用Properties类从属性文件中获取信息。

让我们创建一个属性文件并将其命名为 db.properties

db.proper ties

username = coder
password = geeksforgeeks

编码

// 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"));
    }
}

输出

Java中的属性类

例2: 下面的程序展示了如何使用Properties类来获取所有的系统属性。使用System.getProperties()方法,我们可以得到系统的所有属性。

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

输出

Java中的属性类

例3: 下面的程序展示了如何使用属性类来创建一个属性文件。

// 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");
    }
}

输出

Java中的属性类

属性的方法

方法 描述
getProperty(String key) 在这个属性列表中搜索具有指定键的属性。
getProperty(String key, String defaultValue) 在这个属性列表中搜索带有指定键的属性。
list(PrintStream out) 将此属性列表打印到指定的输出流。
list(PrintWriter out) 将此属性列表打印到指定的输出流中。
load(InputStream inStream) 从输入字节流中读取一个属性列表(键和元素对)。
load(Reader reader) 以简单的面向行的格式从输入的字符流中读取一个属性列表(键和元素对)。
loadFromXML(InputStream in) 将指定输入流上的XML文档所代表的所有属性加载到这个属性表中。
propertyNames() 返回这个属性列表中所有键的枚举值,包括默认属性列表中的不同键,如果还没有从主属性列表中找到同名的键的话。
save(OutputStream out, String comments) 弃用。 如果在保存属性列表时发生I/O错误,该方法不会抛出一个IOException。
setProperty(String key, String value) 调用Hashtable方法put。
store(OutputStream out, String comments) 将此属性表中的此属性列表(键和元素对)以适合使用load(InputStream)方法加载到属性表的格式写入输出流中。
store(Writer writer, String comments) 将此属性表中的此属性列表(键和元素对)以适合使用load(Reader)方法的格式写到输出字符流中。
storeToXML(OutputStream os, String comment) 发出一个代表此表中所有属性的XML文档。
storeToXML(OutputStream os, String comment, String encoding) 发出一个XML文档,代表此表中包含的所有属性,使用指定的编码。
storeToXML(OutputStream os, String comment, Charset charset) 发出一个XML文档,代表此表中包含的所有属性,使用指定的编码。
stringPropertyNames() 从这个属性列表中返回一组不可修改的键,其中的键和它的对应值都是字符串,包括默认属性列表中的不同键,如果在主属性列表中还没有找到同名的键的话。

java.util.Hashtable类中声明的方法

方法 描述
clear() 清除这个hashtable,使其不包含任何键。
clone() 创建这个hashtable的一个浅层拷贝。
compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) 试图为指定的键和其当前的映射值计算一个映射(如果没有当前的映射,则为空)。
computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction) 如果指定的键还没有与一个值相关联(或者被映射为空),则尝试使用给定的映射函数计算其值,并将其输入此映射,除非为空。
computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) 如果指定的键的值是存在的,并且不是空的,则尝试给定键和其当前的映射值来计算一个新的映射。
contains(Object value) 测试某个键是否映射到这个hashtable中的指定值。
containsKey(Object key) 测试指定的对象是否是这个hashtable中的一个键。
containsValue(Object value) 如果这个hashtable将一个或多个键映射到这个值,返回true。
elements() 返回这个hashtable中的值的枚举。
entrySet() 返回这个Map中包含的映射的Set视图。
equals(Object o) 根据Map接口中的定义,将指定的Object与此Map进行比较,看是否相等。
get(Object key) 返回指定的键被映射到的值,如果此Map不包含键的映射,则返回空值。
hashCode() 按照Map接口的定义,返回该Map的哈希代码值。
isEmpty() 测试这个hashtable是否没有将键映射到值。
keys() 返回这个hashtable中的键的枚举值。
keySet() 返回这个Map中包含的键的Set视图。
merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction) 如果指定的键还没有与一个值相关联或者与空值相关联,则将其与给定的非空值相关联。
put(K key, V value) 将指定的键映射到这个hashtable中的指定值。
putAll(Map<? extends K,? extends V> t) 将指定Map中的所有映射复制到这个hashtable中。
rehash() 增加这个hashtable的容量并在内部进行重组,以便更有效地容纳和访问其条目。
remove(Object key) 从这个hashtable中删除键(和它的相应值)。
size() 返回这个hashtable中的键的数量。
toString() 返回这个Hashtable对象的字符串表示,其形式是一组条目,用大括号括起来,用ASCII字符”,”(逗号和空格)分开。
value() 返回该Map中包含的值的集合视图。

java.util.Map接口中声明的方法

方法 描述
forEach(BiConsumer<? super K,? super V> action) 对该Map中的每个条目执行给定的操作,直到所有条目都被处理完,或者该操作抛出一个异常。
getOrDefault(Object key, V defaultValue) 返回指定的键被映射到的值,如果这个Map不包含键的映射,则返回defaultValue。
putIfAbsent(K key, V value) 如果指定的键还没有与一个值相关联(或者被映射为null),则将其与给定的值相关联并返回null,否则返回当前值。
remove(Object key, Object value) 只有当指定的键当前被映射到指定的值时,才会删除该键的条目。
replace(K key, V value) 只有当指定的键当前被映射到某个值时,才会替换该键的条目。
replace(K key, V oldValue, V newValue) 只在当前映射到指定值的情况下替换指定键的条目。
replaceAll(BiFunction<? super K,? super V,? extends V> function) 用在该条目上调用给定函数的结果替换每个条目的值,直到所有条目都被处理或该函数抛出一个异常。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程