java.util.Properties结合 extends Hashtable<k,v> implements Map<k,v>
一、简介
java.util.Properties ` 继承于` Hashtable` ,来表示一个持久的属性集。Properties可保存在流中或从流中加载。它使用键值结构存储数据,每个键及其对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时,`System.getProperties` 方法就是返回一个`Properties`对象。
属性列表中每个键及其对应的值都是一个字符串。
Properties集合是一个双列结合,key和value默认都是字符串
二、构造方法
public Properties()` :创建一个空的属性列表。
三、基本的存储方法
public Object setProperty(String key, String value):
保存一对属性。
public String getProperty(String key) :
使用此属性列表中指定的键搜索属性值。
public Set<String> stringPropertyNames() :
所有键的名称的集合。
四、与流相关的方法
1、Properties集合是一个唯一和IO流相结合的集合。
可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储。
可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读到集合中使用
public void load(InputStream inStream):
五、注意:
文本中的数据,必须是键值对形式,可以使用空格、等号、冒号等符号分隔。
import java.io.*;
import java.util.Properties;
import java.util.Set;
/*
java.util.Properties结合 extends Hashtable<k,v> implements Map<k,v>
Properties类表示了一个持久的属性集。Properties可保存在流中或从流中加载。
Properties集合是一个唯一和IO流相结合的集合
可以使用Properties结合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储。
可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读到集合中使用
属性列表中每隔键及其对应的值都是一个字符串。
Properties集合是一个双列结合,key和value默认都是字符串
*/
public class Demo01Priperies {
public static void main(String[] args) throws IOException {
show01();//将数据写入到集合
getDateFromHard();//从硬盘中读取数据
}
/*
从硬盘中读取数据
可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用
void load(InputStream inStream)
void load(Reader reader)
使用步骤:
1、创建Properties集合
2、使用集合对象中的方法load读取保存的键值对文件
3、遍历结合
注意:
1、存储键值对文件中,键和值默认的链接符号可以使用=、空格(其它符号)
2、可以使用+进行朱姐,被注释的键值对不再会被读取
3、键与值默认都是字符串,不用再加引号
*/
private static void getDateFromHard() throws IOException {
Properties pt = new Properties();
FileReader fr = new FileReader("abc.txt");
pt.load(fr);
Set<String> set = pt.stringPropertyNames();
for (String s : set) {
String value = pt.getProperty(s);
System.out.println(s+"="+value);
}
}
/*
Properties集合有一些操作字符串的特有方法
Object setProperty(String key, String value)调用Hashtable的方法put.
String getProperty(String key) 通过key找到value值,此方法相当于Map结合中的get(key)方法
Set<String> stringPropertyNames()返回此属性列表中的链集,其中该键及其对应值时字符串,此方法
相当于Map结合中的keySet方法
void store(OutputStream out, String comments)
void store(Writer writer, String comments)
参数:
outputStream out:字节输出流,不能写入中文
Writer writer:字符输出流,可以写中文
String comments:注释,用来解释文件中存放的是什么,不能使用中文,否则会乱码,一般使用空字符串
步骤:
1、创建Properties集合对象。
2、创建字节输出/字符输出流。
3.使用Properties集合中的方法store,把集合中的临时数据,永久性写入到硬盘
4、释放资源
*/
private static void show01() throws IOException {
//1、创建Properties结合对象。
Properties pt = new Properties();
pt.setProperty("古力娜扎","21");
pt.setProperty("迪丽热巴","22");
pt.setProperty("韩梅梅","24");
//2、创建字节输出/字符输出流。
FileWriter fw = new FileWriter("abc.txt");
//3.使用Properties集合中的方法store,把集合中的临时数据,永久性写入到硬盘
pt.store(fw, "test");
//释放资源
fw.close();
}
}
来源:CSDN
作者:l0510402015
链接:https://blog.csdn.net/l0510402015/article/details/104592920