Properties 是唯一一个与IO流相交互的集合Properties 类表示了一个持久的属性集。
Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
特点:定死了键值对是String类型的
1、Hashtable的子类,map集合中的方法都可以用。
2、该集合没有泛型。键值都是字符串。
3、它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。
4、有和流技术相结合的方法。
load(InputStream) 把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中
load(Reader)
store(OutputStream,commonts)把集合中的数据,保存到指定的流所对应的文件中,参数commonts代表对描述信息
stroe(Writer,comments);
package com.oracle.demo01;
import java.util.Properties;
public class Demo01 {
public static void main(String[] args) {
//创建Properties集合
Properties pro=new Properties();
//向集合中存键值对
pro.put("name", "tom");
pro.put("age", "18");
//取集合中数据
String name=pro.getProperty("name");
String age=pro.getProperty("age");
System.out.println(name+"..."+age);
}
将集合中内容存储到文件
分析:
1,创建Properties集合
2,添加元素到集合
3,创建流
4,把集合中的数据存储到流所对应的文件中
stroe(Writer,comments)
store(OutputStream,commonts)
把集合中的数据,保存到指定的流所对应的文件中,参数commonts代表对描述信息
5,关闭流
package com.oracle.demo01;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
public class demo02 {
public static void main(String[] args) throws IOException {
// 明确数据源
FileReader fr= new FileReader("D:\\demo0611\\pro.properties");
//创建properties对象
Properties pro=new Properties();
//从文件中将键值对读取到集合pro中
pro.load(fr);
System.out.println(pro);
}
}
1.1 读取文件中的数据,并保存到集合
需求:从属性集文件prop.properties 中取出数据,保存到集合中
分析:
1,创建集合
2,创建流对象
3,把流所对应文件中的数据 读取到集合中
load(InputStream) 把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中
load(Reader)
4,关闭流
5,显示集合中的数据
代码演示:
package com.oracle.demo01;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
public class demo03 {
public static void main(String[] args) throws IOException {
//明确目的地
FileWriter fw =new FileWriter("D:\\demo0611\\pro.properties");
//创建 Properties集合
Properties pro=new Properties();
pro.setProperty("driver", "com.mysql.jdbc.driver");
pro.setProperty("username", "root");
//将集合中的键值对写入到文件中
pro.store(fw, "I do");
}
}
注意:使用字符流FileReader就可以完成文件中的中文读取操作了