1特点
1、Hashtable的子类,map集合中的方法都可以用。
2、该集合没有泛型。键值都是字符串。
3、它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。
4、有和流技术相结合的方法。
2方法
例:当做集合用
import java.io.IOException; import java.util.Properties; import java.util.Set; public class Test { public static void main(String[] args) throws IOException { Properties pro=new Properties(); //往集合中存储键值对 pro.setProperty("b","1"); pro.setProperty("a", "2"); //取值 System.out.println(pro.getProperty("a")); Set<String> set=pro.stringPropertyNames(); //相当于keySet方法 for(String s:set){ System.out.println(s+":"+pro.getProperty(s)); } } }
这里面有三个方法,但不大常用。因为map更好用。
3常用方法
例1:建一个demo.properties的文件,并输入以下内容(注意不要加额外的符号)
import java.io.FileReader; import java.io.IOException; import java.util.Properties; public class Test { public static void main(String[] args) throws IOException { Properties pro=new Properties(); FileReader fr=new FileReader("E:\zyx\java\demo.properties"); //从文件中读取键值对 pro.load(fr); System.out.println(pro); } }
例2:
import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; public class Test { public static void main(String[] args) throws IOException { Properties pro=new Properties(); pro.setProperty("name2", "lisi"); pro.setProperty("hobby2", "football"); pro.setProperty("sex2", "man"); pro.setProperty("sex2", "woman"); //明确目的地 FileOutputStream fos=new FileOutputStream("E:\zyx\java\demo.properties",true); pro.store(fos,"this is a person information"); } }
注意:
描述只能是英文或空串
不能存重复的键
4应用:jdbc工具类中
如果需要连接多个数据库,那么JDBCUtils.java这个工具类需要修改。那么可以建一个properties文件,把配置参数写进去。再读这个文件就方便许多。
例:
在项目中建一个pro.properties文件:
然后工具类连接数据库方法修改为: