package hashtable绝对_相对_类路径存储与读取;
import java.util.Properties;
/**
- 一,Hashtable与 HashMap的区别(经常出现的面试题)
- 1.主要:Hashtable线程安全,同步;效率相对低下
-
HashMap线程不安全,非同步,效率相对高
- 2.父类:Hashtable是Dictionary
-
HashMap是AbstractMap
- 3.null:Hashtable,任何非null对象都可以用作键值或值,即键与值不能为空
-
HashMap,允许null的值和null键。但键最多一个null,值可以多个null
- 二.Properties: 是Hashtable的子类
-
1.作用:读写资源配置文件
-
2.键与值只能为字符串
-
3.方法:
-
存储
-
setProperty(String key, String value) ("调用 Hashtable方法 put "这个老师不推荐使用)
-
读取
-
getProperty(String key) 使用此属性列表中指定的键搜索属性。如果值不存在返回空
-
getProperty(String key, String defaultValue) 使用此属性列表中指定的键搜索属性。
-
如果值不存在返回默认值
- 存储为后缀: .properties; OutputStream输出流;comments注释
-
store(OutputStream out, String comments) 将此属性列表(键和元素对)写入此
-
Properties表中,以适合于使用 load(InputStream)方法加载到 ,Properties表中的格式输出流。
-
字符流:store(Writer writer, String comments) 将此属性列表(键和元素对)写入此
-
Properties表中,以适合使用 load(Reader),方法的格式输出到输出字符流。
- 后缀为: .xml:
-
storeToXML(OutputStream os, String comment) 发出表示此表中包含的所有属性的XML文档,默认UTF-8字符集.
-
重载的: encoding编码
-
storeToXML(OutputStream os, String comment, String encoding) 使用指定的编码发出表示,此表中包含的所有属性的XML文档。
- 获取:
-
load(InputStream inStream) 从输入字节流读取属性列表(键和元素对)。
-
load(Reader reader) 以简单的线性格式从输入字符流读取属性列表(关键字和元素对)。
-
loadFromXML(InputStream in) 将指定输入流中的XML文档表示的所有属性加载到此属性表中。
*/
public class Demo01 {
public static void main(String[] args) {
//创建对象,key与value 只能为字符串
Properties pro = new Properties();
//存储与读取;driver驱动程序; oracle数据库;jdbc,java数据库链接
pro.setProperty("driver", "oracle.jdbc.driver.OracleDriver");//"oracle.jdbc.driver.OracleDriver"数据库驱动程序链接字符串
//url网址;jdbc,java数据库链接;thin比较小;oracle数据库;localhost本地主机;1521默认端口; orcl数据库
pro.setProperty("url", "jdbc:oracle:thin:@localhost:1521:orcl");//"jdbc:oracle:thin:@localhost:1521:orcl"理解为特殊含义的字符串
//user用户;scott名字
pro.setProperty("user", "scott");
//pwd密码;tiger"一个字符串密码"
pro.setProperty("pwd", "tiger");
//获取;test测试
String url = pro.getProperty("url","test");//url如果为空就使用test
System.out.println(url);
}
}