1.1 Properties类介绍
Properties
类表示了一个持久的属性集。Properties
可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
特点:
1、Hashtable的子类,map集合中的方法都可以用。
2、该集合没有泛型。键值都是字符串。
3、它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。
4、有和流技术相结合的方法。
Properties中存和取键值对代码:
import java.util.Properties;
import java.util.Set;
/*Properties方法使用
* Properties经常用来操作key和value都是String类型的数据
* Object setProperty(String key, String value):向Properties中存放key和value
String getProperty(String key):根据key获取value
Set<String> stringPropertyNames():将properties中所有的key放到一个set集合中,返回这个set集合
*/
public class Demo02 {
public static voidmain(String[] args) {
//method01();
Properties pros=new Properties();
pros.setProperty("计算机系001","张三");
pros.setProperty("计算机系003","李四");
pros.setProperty("计算机系002","王五");
Set<String> keys=pros.stringPropertyNames();
for(String key : keys){
System.out.println(key+" "+pros.getProperty(key));
}
}
private static void method01(){
Propertiespros=new Properties();
pros.put(1,"abc");
pros.put(2,"def");
pros.put(3,"ghk");
//System.out.println(pros);
for(Object key : pros.keySet()){
System.out.println(key+" "+pros.get(key));
}
}
}
1.2 读取文件中的数据保存到集合
代码演示:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
/*
*Properties与IO流相结合的方法
* voidload(Reader reader)
* voidstore(Writer writer, String comments)
Properties中关联的文件是有限制的
关联配置文件(.properties),而且文件中的内容都是键值对
key1=value1
key2=value2
....
*/
public class Demo03 {
public static voidmain(String[] args) throws IOException {
//method01();
}
private static void method01()throws FileNotFoundException, IOException {
//1.新建一个Properties集合
Properties pros=new Properties();
//2.利用FileReader关联文件
FileReader fr=new FileReader("pro.properties");
//3.将pro.properties文件中键值对加载到pros集合中
pros.load(fr);
System.out.println(pros);
fr.close();
}
}
1.3 将集合中内容存储到文件
代码演示:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
/*
*Properties与IO流相结合的方法
* voidload(Reader reader)
* voidstore(Writer writer, String comments)
Properties中关联的文件是有限制的
关联配置文件(.properties),而且文件中的内容都是键值对
key1=value1
key2=value2
....
*/
public class Demo03 {
public static voidmain(String[] args) throws IOException {
Properties pros=new Properties();
pros.setProperty("sname","zhangsan");
pros.setProperty("age", "13");
pros.setProperty("gender","male");
FileWriter fw=new FileWriter("store.properties");
pros.store(fw, null);//第二个参数代表注释
fw.close();
}
}