Properties 类代表一组持久的属性。属性可以保存到流中或从流中加载。它属于java.util包。属性定义以下实例变量。该变量保存与 Properties 对象关联的默认属性列表。
Properties defaults: This variable holds a default property list associated with a Properties object.
Properties类的特点:
- 属性是一个子类哈希表.
- 它用于维护一个值列表,其中键是字符串,值也是字符串,即;它可用于在属性文件中存储和检索字符串类型数据。
- Properties 类可以指定其他属性列表,因为它是默认的。如果原始属性列表中不存在特定的关键属性,则将搜索默认属性。
- Properties 对象不需要外部同步,多个线程可以共享单个 Properties 对象。
- 此外,它还可用于检索系统的属性。
优点 属性文件
如果属性记录中的任何数据发生更改,则无需重新编译 java 类。它用于存储需要经常更改的数据。
注意:Properties 类没有从其超类继承负载因子的概念,哈希表.
声明
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.properties
username = coder password = geeksforgeeks
代码
Java
// 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"));
}
}
输出
示例 2:下面的程序展示了如何使用Properties类来获取所有系统属性。使用System.getProperties()方法,我们可以获取系统的所有属性。
Java
// 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());
}
}
}
输出
示例 3:下面的程序展示了如何使用Properties类来创建属性文件。
Java
// 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");
}
}
输出
属性方法
METHOD |
DESCRIPTION |
---|---|
getProperty(String key) | 在此属性列表中搜索具有指定键的属性。 |
getProperty(String key, String defaultValue) | 在此属性列表中搜索具有指定键的属性。 |
list(PrintStream out) | 将此属性列表打印到指定的输出流。 |
Properties list(PrintWriter) | 将此属性列表打印到指定的输出流。 |
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) | 将此 Properties 表中的属性列表(键和元素对)以适合使用 load(InputStream) 方法加载到 Properties 表中的格式写入输出流。 |
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 中声明的方法
METHOD |
DESCRIPTION |
---|---|
clear() | 清除此哈希表,使其不包含键。 |
clone() | 创建此哈希表的浅拷贝。 |
计算(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) | 尝试计算指定键及其当前映射值的映射(如果没有当前映射,则为 null)。 |
computeIfAbsent(K key, Function<? super K,? 扩展 V> 映射函数) | 如果指定的键尚未与值关联(或映射为 null),则尝试使用给定的映射函数计算其值并将其输入到此映射中,除非 null。 |
computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) | 如果指定键的值存在且非空,则尝试在给定键及其当前映射值的情况下计算新映射。 |
contains(Object value) | 测试某些键是否映射到此哈希表中的指定值。 |
containsKey(Object key) | 测试指定的对象是否是此哈希表中的键。 |
containsValue(Object value) | 如果此哈希表将一个或多个键映射到该值,则返回 true。 |
elements() | 返回此哈希表中值的枚举。 |
entrySet() | 返回此映射中包含的映射的 Set 视图。 |
equals(Object o) | 根据 Map 接口中的定义,比较指定的 Object 与此 Map 是否相等。 |
get(Object key) | 返回指定键映射到的值,如果此映射不包含该键的映射,则返回 null。 |
hashCode() | 根据 Map 接口中的定义返回此 Map 的哈希码值。 |
isEmpty() | 测试此哈希表是否没有键映射到值。 |
keys() | 返回此哈希表中键的枚举。 |
keySet() | 返回此映射中包含的键的集合视图。 |
merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction) | 如果指定的键尚未与值关联或与 null 关联,则将其与给定的非 null 值关联。 |
put(K key, V value) | 将此哈希表中的指定键映射到指定值。 |
putAll(Map<? 扩展 K,? 扩展 V> t) | 将指定映射中的所有映射复制到此哈希表。 |
rehash() | 增加该哈希表的容量并在内部重新组织该哈希表,以便更有效地容纳和访问其条目。 |
remove(Object key) | 从此哈希表中删除键(及其对应的值)。 |
size() | 返回此哈希表中键的数量。 |
toString() | 以一组条目的形式返回此 Hashtable 对象的字符串表示形式,用大括号括起来并用 ASCII 字符“,”(逗号和空格)分隔。 |
values() | 返回此映射中包含的值的集合视图。 |
接口 java.util.Map 中声明的方法
METHOD |
DESCRIPTION |
---|---|
forEach(BiConsumer<?超级 K,?超级 V> 操作) | 对此映射中的每个条目执行给定的操作,直到处理完所有条目或该操作引发异常。 |
getOrDefault(Object key, V defaultValue) | 返回指定键映射到的值,如果此映射不包含该键的映射,则返回 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,? 扩展 V> 函数) | 将每个条目的值替换为在该条目上调用给定函数的结果,直到处理完所有条目或函数引发异常。 |
相关用法
- Java Properties loadFromXML()用法及代码示例
- Java Properties propertyNames()用法及代码示例
- Java Properties setProperty()用法及代码示例
- Java Properties stringPropertyNames()用法及代码示例
- Java Properties list(PrintStream)用法及代码示例
- Java Properties keys()用法及代码示例
- Java Properties isEmpty()用法及代码示例
- Java Properties clear()用法及代码示例
- Java Properties clone()用法及代码示例
- Java Properties containsKey(value)用法及代码示例
- Java Properties contains(value)用法及代码示例
- Java Properties containsValue(value)用法及代码示例
- Java Properties elements()用法及代码示例
- Java Properties entrySet()用法及代码示例
- Java Properties equals(value)用法及代码示例
- Java Properties forEach(BiConsumer)用法及代码示例
- Java Properties hashCode()用法及代码示例
- Java Properties get(key)用法及代码示例
- Java Properties getProperty(key)用法及代码示例
- Java Properties keySet()用法及代码示例
- Java Properties list(PrintWriter)用法及代码示例
- Java Properties getProperty(key, defaultValue)用法及代码示例
- Java Properties getOrDefault(key, defaultValue)用法及代码示例
- Java Properties computeIfAbsent(Key, Function)用法及代码示例
- Java Properties computeIfPresent(Key, BiFunction)用法及代码示例
注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Properties Class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。