学习笔记——Properties类配置文件
-
可以生成配置文件
-
解析配置文件
继承HashTable,它是线程安全的map。
这个类有put方法,不推荐,因为配置文件都是字符串。因此给我们提供了单独的get,set方法 这方法,只能传字符串。
获取配置文件properties的四种方法:
传统io流的方式:不推荐
p.load(new FileInputStream("resources/db.properties"));
当前字节码对象获取流的方式,掌握
p.load(Demo.class.getResourceAsStream("/db.properties"));
通过类加载方式获取流,注意 没有斜杠
p.load(Demo.class.getClassLoader().getResourceAsStream("db.properties"));
通过当前线程类加载器
p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
代码实现:
public class Demo {
public static void main(String[] args) throws IOException {
// 创建对象
Properties p = new Properties();
// 1. 传统io流的方式:不推荐
p.load(new FileInputStream("resources/db.properties")); // 读到内存中了
// 需要创建资源目录resources,,右键 Mark Directory as -> Resources Root
// 2. 当前字节码对象获取流的方式,掌握
p.load(Demo.class.getResourceAsStream("/db.properties"));
// 3. 通过类加载方式获取流,注意 没有斜杠
p.load(Demo.class.getClassLoader().getResourceAsStream("db.properties"));
// 4. 通过当前线程类加载器
p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
System.out.println(p.getProperty("maxActive"));
}
}
以下展开写 方便看
加载配置文件方法
传统io流的方式
不推荐
public class Demo01 {
public static void main(String[] args) throws IOException {
Properties p = new Properties();
p.load(new FileInputStream("resources/db.properties")); // 读到内存中了
System.out.println(p.getProperty("maxActive"));
}
}
当前字节码对象方式
当前字节码对象获取流的方式
掌握
public class Demo02 {
public static void main(String[] args) throws IOException {
Properties p = new Properties();
// 字节码对象。
p.load(Demo02.class.getResourceAsStream("/db.properties")); // 读到内存中了
System.out.println(p.getProperty("maxActive"));
}
}
类加载器方式
通过类加载方式获取流,
注意不加斜杠
public class Demo03 {
public static void main(String[] args) throws IOException {
Properties p = new Properties();
p.load(Demo03.class.getClassLoader().getResourceAsStream("db.properties"));
System.out.println(p.getProperty("maxActive"));
}
}
当前线程方式
通过当前线程类加载器
public class Demo04 {
public static void main(String[] args) throws IOException {
Properties p = new Properties();
p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
System.out.println(p.getProperty("maxActive"));
}
}

浙公网安备 33010602011771号