1 本身就是Map结构,是 HashTable的子类
2 其k,v必须是string类型
3 此map最大特色在于常和流搭档,因此常用于读写入 .properties .xml
4 使用代码写法如下:
1 赋值
//创建对象
Properties pro =new Properties();
//存储
pro.setProperty("driver", "oracle.jdbc.driver.OracleDriver");
//pro.setProperty("url", "jdbc:oracle:thin:@localhost:1521:orcl");
pro.setProperty("user", "scott");
pro.setProperty("pwd", "tiger");
//获取
String url =pro.getProperty("url","test");
System.out.println(url);
2 写入数据到工程 ----> 默认自带盘符,不需指定根路径
public static void main(String[] args) throws FileNotFoundException, IOException {
//创建对象
Properties pro =new Properties();
//存储
pro.setProperty("driver", "oracle.jdbc.driver.OracleDriver");
pro.setProperty("url", "jdbc:oracle:thin:@localhost:1521:orcl");
pro.setProperty("user", "scott");
pro.setProperty("pwd", "tiger111");
//存储到e:/others 绝对路径 盘符:
//pro.store(new FileOutputStream(new File("e:/others/db.properties")), "db配置"); 写出后文件为.properties
//pro.storeToXML(new FileOutputStream(new File("e:/others/db.xml")), "db配置"); 写出后文件为.xml
//使用相对路径 当前的工程 默认相对路径是当前工程 都不要写根路径盘符 <--------------------------> 对比与在读取的时,使用相对路径下,需要用 /(表示bin) 来指定工程根路径盘符
pro.store(new FileOutputStream(new File("db.properties")), "db配置");
//pro.store(new FileOutputStream(new File("src/db.properties")), "db配置");
//pro.store(new FileOutputStream(new File("src/com/bjsxt/others/pro/db.properties")), "db配置");
}
3 读取文件到内存 ----> 需指定根路径 /
public static void main(String[] args) throws IOException {
Properties pro =new Properties();
//类相对路径的 /表示bin 翻译成字节码后的根目录,最后被翻译成字节码为: bin/包/类/class 而bin则为/表示
pro.load(Demo04.class.getResourceAsStream("/com/bjsxt/others/pro/db.properties")); // 倾向于用这种方式
// 或者用类加载器方式获取相对路径
//pro.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("com/bjsxt/others/pro/db.properties"));
System.out.println(pro.getProperty("user", "bjsxt"));
}