一,Properties
是一个Map体系的集合
Properties可以保存到流中或从流中加载
虽然是Map体系的但是创建该集合时不能指定泛型
方法 | 描述 |
Object setProperty(String key,String value) | 设置集合的键和值,都是String类型,底层调用Hashtable的put方法 |
String getProperty(String key) | 使用此属性列表中指定的键搜索属性 |
Set<String> stringPropertyNames() | 从该属性列表中返回一个不可修改的键集,其中健及其对应的值是字符串 |
对于它的方法下面是练习
import java.util.Properties;
import java.util.Set;
public class PropertiesTest {
public static void main(String[] args) {
Properties prop=new Properties();
/*
setProperty方法效果上看跟put方法一样,但是put的key与value都是Object类型,即什么都可以
而setProperty方法的key与value都只能是string类型,并且它的底层用的就是put
*/
prop.put("李白","24");
prop.setProperty("杜甫","茅屋为秋风所破歌");
/*
getProperty方法同样类似于get方法,也同样它只能得到key是String类型的String型的value
而get方法则没有这样的限制
*/
System.out.println(prop.getProperty("杜甫"));
System.out.println(prop.get("李白"));
/*
stringPropertyNames方法与keyset方法类似,只不过value如果不是String那它对应的key也不会在这个Set集合里
*/
Set<String> names=prop.stringPropertyNames();
for(String name:names){
System.out.println(name);
}
Set<Object> peoples= prop.keySet();
for(Object people:peoples){
System.out.println(people);
}
}
}
二,Properties与IO流结合
方法 | 描述 |
void load(InputStream inStream) | 从输入字节流读取属性列表(键和元素对) |
void load(Reader reader) | 从输入字符流读取属性列表(键和元素对) |
void store(OutputStream out, String comments) | 将此属性列表(键和元素对)写入此 Properties表中,以适合于使用load(inputStream)方法的格式写入输出字节流 |
void store(Writer writer,String comments) | 将此属性列表(键和元素对)写入此 Properties表中,以适合使用load(Reader)方法的格式写入输出字符流 |
下面是关于它的练习
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
public class PropertierAndIO {
public static void writer() throws IOException {
Properties prop =new Properties();
FileWriter fw=new FileWriter("data.txt");
prop.setProperty("杜甫","茅屋为秋风所破歌");
prop.setProperty("苏轼","赤壁赋");
prop.setProperty("李白","行路难");
prop.store(fw,null);
fw.close();
}
public static void reader() throws IOException{
Properties prop =new Properties();
FileReader fr=new FileReader("data.txt");
prop.load(fr);
fr.close();
System.out.println(prop);
}
public static void main(String[] args) throws IOException {
writer();
reader();
}
}