ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # Properties Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 特点: 1、Hashtable的子类,map集合中的方法都可以用。 2、该集合没有泛型。键值都是字符串。 3、它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。 4、有和流技术相结合的方法。 ![](https://box.kancloud.cn/bd8b14166270e219a2be111e1b9d10d1_1576x624.jpg) * load(InputStream) 把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中 * load(Reader) * store(OutputStream,commonts)把集合中的数据,保存到指定的流所对应的文件中,参数commonts代表对描述信息 * stroe(Writer,comments); ~~~ //创建集合对象 Properties prop = new Properties(); //添加元素到集合 //prop.put(key, value); prop.setProperty("周迅", "张学友"); prop.setProperty("李小璐", "贾乃亮"); prop.setProperty("杨幂", "刘恺威"); //System.out.println(prop);//测试的使用 //遍历集合 Set<String> keys = prop.stringPropertyNames(); for (String key : keys) { //通过键 找值 //prop.get(key) String value = prop.getProperty(key); System.out.println(key+"==" +value); } ~~~ # 注释 `加 #` ## 将集合中内容存储到文件 需求:使用Properties集合,完成把集合内容存储到IO流所对应文件中的操作 分析: 1,创建Properties集合 2,添加元素到集合 3,创建流 4,把集合中的数据存储到流所对应的文件中 stroe(Writer,comments) store(OutputStream,commonts) 把集合中的数据,保存到指定的流所对应的文件中,参数commonts代表对描述信息 5,关闭流 ~~~ //1,创建Properties集合 Properties prop = new Properties(); //2,添加元素到集合 prop.setProperty("周迅", "张学友"); prop.setProperty("李小璐", "贾乃亮"); prop.setProperty("杨幂", "刘恺威"); //3,创建流 FileWriter out = new FileWriter("prop.properties"); //4,把集合中的数据存储到流所对应的文件中 prop.store(out, "save data"); //5,关闭流 out.close(); ~~~ ## 读取文件中的数据,并保存到集合 需求:从属性集文件prop.properties 中取出数据,保存到集合中 分析: 1,创建集合 2,创建流对象 3,把流所对应文件中的数据 读取到集合中 load(InputStream) 把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中 load(Reader) 4,关闭流 5,显示集合中的数据 ~~~ public static void main(String[] args) throws IOException { //1,创建集合 Properties prop = new Properties(); //2,创建流对象 FileInputStream in = new FileInputStream("prop.properties"); //FileReader in = new FileReader("prop.properties"); //3,把流所对应文件中的数据 读取到集合中 prop.load(in); //4,关闭流 in.close(); //5,显示集合中的数据 System.out.println(prop); } ~~~ # ResourceBundle 工具 ~~~ //jdk提供的工具类加载properties文件,名字db.properties的后缀可以省略 ResourceBundle bundle = ResourceBundle.getBundle("db"); //通过key获得需要的值 String driver = bundle.getString("driver"); System.out.println(driver); ~~~