这个连接包含了常用的流------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可从文件读取赋值