package com.itheima.demo07.Prop;

 import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import java.util.Set; /*
java.util.Properties集合 extends Hashtable<k,v> implements Map<k,v>
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。
Properties集合是一个唯一和IO流相结合的集合
可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用 属性列表中每个键及其对应值都是一个字符串。
Properties集合是一个双列集合,key和value默认都是字符串
*/
public class Demo01Properties {
public static void main(String[] args) throws IOException {
show03();
} /*
可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用
void load(InputStream inStream)
void load(Reader reader)
参数:
InputStream inStream:字节输入流,不能读取含有中文的键值对
Reader reader:字符输入流,能读取含有中文的键值对
使用步骤:
1.创建Properties集合对象
2.使用Properties集合对象中的方法load读取保存键值对的文件
3.遍历Properties集合
注意:
1.存储键值对的文件中,键与值默认的连接符号可以使用=,空格(其他符号)
2.存储键值对的文件中,可以使用#进行注释,被注释的键值对不会再被读取
3.存储键值对的文件中,键与值默认都是字符串,不用再加引号
*/
private static void show03() throws IOException {
//1.创建Properties集合对象
Properties prop = new Properties();
//2.使用Properties集合对象中的方法load读取保存键值对的文件
prop.load(new FileReader("09_IOAndProperties\\prop.txt"));
//prop.load(new FileInputStream("09_IOAndProperties\\prop.txt"));
//3.遍历Properties集合
Set<String> set = prop.stringPropertyNames();
for (String key : set) {
String value = prop.getProperty(key);
System.out.println(key+"="+value);
}
} /*
可以使用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.释放资源
*/
private static void show02() throws IOException {
//1.创建Properties集合对象,添加数据
Properties prop = new Properties();
prop.setProperty("赵丽颖","168");
prop.setProperty("迪丽热巴","165");
prop.setProperty("古力娜扎","160"); //2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
//FileWriter fw = new FileWriter("09_IOAndProperties\\prop.txt"); //3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
//prop.store(fw,"save data"); //4.释放资源
//fw.close(); prop.store(new FileOutputStream("09_IOAndProperties\\prop2.txt"),"");
} /*
使用Properties集合存储数据,遍历取出Properties集合中的数据
Properties集合是一个双列集合,key和value默认都是字符串
Properties集合有一些操作字符串的特有方法
Object setProperty(String key, String value) 调用 Hashtable 的方法 put。
String getProperty(String key) 通过key找到value值,此方法相当于Map集合中的get(key)方法
Set<String> stringPropertyNames() 返回此属性列表中的键集,其中该键及其对应值是字符串,此方法相当于Map集合中的keySet方法
*/
private static void show01() {
//创建Properties集合对象
Properties prop = new Properties();
//使用setProperty往集合中添加数据
prop.setProperty("赵丽颖","168");
prop.setProperty("迪丽热巴","165");
prop.setProperty("古力娜扎","160");
//prop.put(1,true); //使用stringPropertyNames把Properties集合中的键取出,存储到一个Set集合中
Set<String> set = prop.stringPropertyNames(); //遍历Set集合,取出Properties集合的每一个键
for (String key : set) {
//使用getProperty方法通过key获取value
String value = prop.getProperty(key);
System.out.println(key+"="+value);
}
}
}

最新文章

  1. JLINK通过JFLASH烧写bin文件报错处理方法
  2. react通过自己的jsx语法将两者放在一起通过虚拟dom来渲染
  3. Spring与JPA
  4. Spring学习(二)——Spring中的AOP的初步理解[转]
  5. java转c#代码工具集合
  6. hdoj 1686 Oulipo【求一个字符串在另一个字符串中出现次数】
  7. Qt 窗体布局 good
  8. mysql 性能分析套件
  9. python函数与方法装饰器
  10. drupal进入不了后台时候的解决办法,作者使用drush方案,已验证
  11. 「POJ2891」Strange Way to Express Integers【数学归纳法,扩展中国剩余定理】
  12. django中static的坑
  13. Java 数据返回接口封装
  14. 基于FastJson的通用泛型解决方案
  15. 求标准分sql
  16. python小实例一:简单爬虫
  17. nginx 413 500报错
  18. TFS二次开发09——查看文件历史(QueryHistory)
  19. cocos creator Touch事件应用(触控选择多个子节点)
  20. django用户认证系统——拓展 User 模型2

热门文章

  1. PHP函数:php_sapi_name
  2. 2020i春秋新春战疫
  3. 数值计算方法实验之按照按三弯矩方程及追赶法的三次样条插值 (MATLAB 代码)
  4. LeetCode 面试题51. 数组中的逆序对
  5. 解决laravel5.4视图不生效的坑
  6. js 函数的多图片预加载(preload) 带插件版完整解析
  7. 《例说51单片机(C语言版)(第3版)》——1-3 认识MCS-51的存储器结构
  8. 个人博客开发系列:Vue.js + Koa.js项目中使用JWT认证
  9. C++编程入门题目--No.3
  10. AWVS 安全渗透扫描