package Property;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.Properties;
import java.util.Set;
/*
分析
*/
public class UseProperty {
public static void main(String[] args) throws Exception{
// 1.创建 property对象
Properties properties = new Properties();
// 2. 添加数据 set方法 添加键值对 不是哈希的put方法
properties.setProperty("ttile","number of 奶茶");
properties.setProperty("蜜雪冰城","11948");
properties.setProperty("书亦烧仙草","5854");
properties.setProperty("CoCo都可","4529");
properties.setProperty("古茗茶饮","4298");
properties.setProperty("益禾堂","4176");
properties.setProperty("一点点","3163");
properties.setProperty("甜啦啦","2467");
properties.setProperty("茶百道","2317");
properties.setProperty("沪上阿姨","2027");
properties.setProperty("快乐柠檬","994");
properties.setProperty("time","2021-9");
// 3.遍历 获取所有的属性名称 返回字符串 key的集合
Set<String>pronames=properties.stringPropertyNames();
for(String pro:pronames){
System.out.println(pro+"====="+properties.getProperty(pro));//通过get方法 用键值 获取value
}
//4. 和流有关的方法 保存下 调用list方法 print输出流
PrintWriter pw=new PrintWriter("d:\\java\\print.properties");
properties.list(pw);
pw.close();
// 注意 写入list 无序的 不会保留原来的顺序
//5. 采用 字节输出流和store存储 注意中文 乱码 因为store只支持字节流写入
FileOutputStream fileOutputStream=new FileOutputStream("D:\\java\\奶茶.properties");
properties.store(fileOutputStream,"注释");
fileOutputStream.close();
//6. 采用load方法 字节输入流 读取文件到pro对象中 中文如果全部读入 再打印 没问题 因为不是按照字节单位打印的
Properties properties1=new Properties();
FileInputStream fis=new FileInputStream("d:\\java\\奶茶.properties");
properties1.load(fis);//从字节流对象 读取
fis.close();
System.out.println(properties1);
}
}
控制台结果:

image.png
生成文件:
print.properties 和 奶茶.properties;
注意字节流输出文件会乱码 ,而list的输出方法 虽然是中文,但是 类似于哈希表 无序;可用字符流。

image.png

image.png