这个连接包含了常用的流------IO流(总篇章)
概述:
是一个Map体系集合类Properties可以保存到流中或者从流中加载
package com.testIO;
import java.util.*;
/**
* @author 林高禄
* @create 2020-05-13-11:20
*/
public class PropertiesDemo {
public static void main(String[] args) {
Properties p = new Properties();
p.put("a","a1");
p.put("林","林高禄");
p.setProperty("b","b1");
Set<String> strings = p.stringPropertyNames();
for(String s:strings){
System.out.println(s+","+p.getProperty(s));
}
}
}
输出:
b,b1
a,a1
林,林高禄
Properties作为集合的特有方法
- Object setProperty(String key, String value):设置集合的键和值,都是String类型,底层调用Hashtable方法put
- String getProperty(String key):使用此属性列表中指定的键搜索属性
- Set<String> stringPropertyNames():从该属性列表中返回一个不可修改的键集,其中键及其对应的值都是字符串
Properties与IO流集合的方法
- void load(InputStream inStream):从输入字节流读取属性列表(键和元素对)
- void load(Reader reader):从输入字符流读取属性列表(键和元素对)
- void store(OutputStrream out,String comments):将此属性列表(键和元素对)写入此Properties表中,以适合于使用load(InputStream inStream)方法的格式写入输出字节流
- void store(Writer weiter,String comments):将此属性列表(键和元素对)写入此Properties表中,以适合于使用load(Reader reader)方法的格式写入输出字符流
package com.testIO;
import java.io.*;
import java.util.*;
/**
* @author 林高禄
* @create 2020-05-13-11:20
*/
public class PropertiesDemo {
public static void main(String[] args) throws IOException {
Properties p = new Properties();
p.put("a","a1");
p.put("林","林高禄");
p.setProperty("b","b1");
FileWriter fw = new FileWriter("test//src//com//testIO//properties.txt");
p.store(fw,"测试写入aa");
fw.close();
FileReader fr = new FileReader("test//src//com//testIO//properties.txt");
Properties p1 = new Properties();
p1.load(fr);
fr.close();
System.out.println(p);
System.out.println(p1);
}
}
properties.txt文件内容为: #\u6D4B\u8BD5\u5199\u5165aa #Wed May 13 11:47:02 CST 2020 b=b1 林=林高禄 a=a1
控制台输出结果为:
{b=b1, 林=林高禄, a=a1}
{b=b1, a=a1, 林=林高禄}
由此可见:
- Properties可写入文件,void store(Writer weiter,String comments)方法的comments参数,汉字会转义,字母还是字母
- Properties可从文件读取赋值