Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
特点:
1、Hashtable的子类,map集合中的方法都可以用。
2、该集合没有泛型。键值都是字符串。
3、它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。
4、有和流技术相结合的方法。
/*
* Properties:表示了一个持久的属性集,属性列表中每个键及其对应值都是一个字符串
*
* 构造方法:
* Properties()
*/
public class PropertiesDemo2 {
public static void main(String[] args) {
//创建属性列表对象
Properties prop = new Properties();
//添加映射关系
prop.put("CZBK001", "zhangsan");
prop.put("CZBK002", "lisi");
prop.put("CZBK003", "wangwu");
//遍历属性列表
//获取所有的key,通过key获取value
Set<Object> keys = prop.keySet();
for (Object key : keys) {
Object value = prop.get(key);
System.out.println(key + "=" + value);
}
System.out.println("------------------");
//获取所有的结婚证对象
Set<Map.Entry<Object,Object>> entrys = prop.entrySet();
for (Map.Entry<Object, Object> entry : entrys) {
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(key + "=" + value);
}
}
}
1.1 Properties与流结合使用
/*
* Properties和IO流结合的功能:
void load(Reader reader)
void list(PrintWriter out)
void store(Writer writer, String comments)
*/
1.2 Properties与流结合使用
package com.houlinying01;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Properties;
public class PropertiesDemo {
@SuppressWarnings("resource")
public static void main(String[] args) throws Exception {
method01();
method02();
}
//从文件读取到properties集合
private static void method02() throws FileNotFoundException, IOException {
// 创建输入流对象
FileReader fr = new FileReader("000.txt");
//创建属性列表对象
Properties pr = new Properties();
// 加载Reader对象
pr.load(fr);
fr.close();
System.out.println(pr);
}
//利用properties向文件添加
private static void method01() throws IOException {
// 创建输出流对象
FileWriter fw = new FileWriter("000.txt");
//创建属性列表对象
Properties pr = new Properties();
pr.put("小白", "48");
// put(Object key, Object value)和setProperty(String key,String value)的区别
// put传入的数据是对象,setproperty是字符串,对象的话需要向下转型,所以一般不用put方法。
pr.setProperty("xiaohei", "18");
pr.setProperty("xiao白", "18");
//store(Writer writer, String comments)
//store的第一个参数是writer对象,第二个是对集合的内容的描述
pr.store(fw, "Student");
fw.close();
}
}
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
public class PropertiesDemo {
public static void main(String[] args) throws Exception {
//根据想对应的key值查找value
Properties pro = new Properties();
FileReader reader = new FileReader("properties.txt");
pro.load(reader);
String drive = pro.getProperty("drive");
String name = pro.getProperty("name");
String pwd = pro.getProperty("pwd");
String url = pro.getProperty("url");
}
}
properties.txt
drive=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybase
name=root
pwd=root