java.util.Properties集合 extends Hashtable<K k,V v>
Properties(属性)类表示了一个待久的属性集,Properties可保存在流中或从流中加载
Properties集合是一个唯一和IO流相结合的集合
可使用Properties集合中的方法Store,把集合中的临时数据,持久化写入硬盘中存储
可以使用Properties集合中的方法Load,把硬盘中的文件(键值对),读取到集合中使用
属性列表中每个键或值都是一个字符串
Properties集合是一个双例集合,Key,Value都是String类型
使用Properties集合存储数据,遍历取出Properties集合中的数据
Properties集合有一些操作字符串的特有方法:
Objece.SetProperty(String Key,String Value)相当于调用HashMap的put方法
String getProperty(String Key)相当于HashMap的get(key)方法
Set stringPropertyNames()返回些属性列表中的键集,相当于HashMap的KeySet方法
package io.test;
import java.util.Properties;
import java.util.Set;
public class PropertiesDemo01 {
public static void main(String[] args) {
mother();
}
private static void mother() {
Properties pro=new Properties();
pro.setProperty("张天爱","28");
pro.setProperty("佟丽娅","30");
pro.setProperty("古力娜扎","18");
pro.setProperty("刘备","8");
Set<String> set = pro.stringPropertyNames();
if (set.size()!=0){
for (String s : set) {
System.out.println(s+": "+pro.getProperty(s));
}
}
}
}
使用Properties集合的方法Store,把集合中的临时数据待久化写入到硬盘中存储
void store(OutputStream out,String comments)
void store(Writer writer ,String comments)
参数:
OutputStream out:字节输出流,不能写中文
Writer writer:字符输出流,可以写中文
String comments:注释,用来说明的文件是做什么用的,不能使用中文,会产生乱码,默认是Unicode编码,一般使用“ 空字符串”
使用步骤:
1,创建Properties集合对象,添加数据
2,创建字节输出流或字符输出流,构造方法中绑定要输出的目的地
3,使用Properties集合中的方法store,把集合中的临时数据持久化写入硬盘中存储
4,释放资源
package io.test;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
public class PropertiesDemo02 {
public static void main(String[] args) throws IOException {
mother();
}
private static void mother() throws IOException {
Properties pro=new Properties();
pro.setProperty("张天爱","28");
pro.setProperty("佟丽娅","32");
pro.setProperty("古力娜扎","18");
pro.setProperty("刘务","8");
FileWriter fw=new FileWriter("ee.txt");
pro.store(fw,"my data");
fw.close();
}
}
可以使用Properties集合中的方法load,把硬盘中的文件(键值对),读取到集合中使用
void load(InputStream inStream)
void load(Reader reader)
使用步骤:
1,创建Properties集合对象
2,使用Properties集合对象中的方法Load读取保存键值对的文件
3,遍历Properties集合
package io.test;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;
public class PropertiesDemo03 {
public static void main(String[] args) throws IOException {
mother();
}
private static void mother() throws IOException {
Properties pro = new Properties();
FileReader fr = new FileReader("ee.txt");
pro.load(fr);
Set<String> set = pro.stringPropertyNames();
if (set.size() != 0 && set != null) {
for (String s : set) {
System.out.println(s + ": " + pro.getProperty(s));
}
}
fr.close();
}
}