读取Properties配置文件的几种方式

来源:互联网 发布:佳能ir2535i 网络驱动 编辑:程序博客网 时间:2024/05/24 04:31

整理一下方便自己和大家

1.创建demo.properties配置文件


name=\u5C0F\u660Esex=\u7537age=18
2.比较简单不多说了,直接代码

package com.xu.bean;import java.io.IOException;import java.io.InputStream;import java.util.Properties;/** * 读取配置的几种方式 * 1.工具类中读取 - 在静态方法中 * 2.非静态方法中读取(几种方法都可用) * @author xuyl * */public class ReadPropertiesDemo {public static void main(String[] args) {readPropertiesMethod1();readPropertiesMethod2();ReadPropertiesDemo rpd = new ReadPropertiesDemo();rpd.readPropertiesMethod3();}/** * 读取配置文件的第一种方法 * 非静态和静态方法中都可使用 */public static void readPropertiesMethod1(){//获取输入流注意要有/InputStream is = ReadPropertiesDemo.class.getResourceAsStream("/properties/demo.properties");Properties ppt = new Properties();try {                        //可以解决中文乱码问题                       ppt.load(new InputStreamReader(is, "utf-8"));String name = ppt.getProperty("name");String sex = ppt.getProperty("sex");String age = ppt.getProperty("age");System.out.println("readPropertiesMethod1:");System.out.println("姓名:" + name + ",年龄:" + age + ",性别:" + sex);} catch (IOException e) {e.printStackTrace();}}/** * 读取配置文件的第一种方法 * 非静态和静态方法中都可使用 */public static void readPropertiesMethod2(){//获取输入流注意没有/InputStream is = ReadPropertiesDemo.class.getClassLoader().getResourceAsStream("properties/demo.properties");Properties ppt = new Properties();try {ppt.load(is);String name = ppt.getProperty("name");String sex = ppt.getProperty("sex");String age = ppt.getProperty("age");System.out.println("readPropertiesMethod2:");System.out.println("姓名:" + name + ",年龄:" + age + ",性别:" + sex);} catch (IOException e) {e.printStackTrace();}}/** * 读取配置文件的第一种方法 * 非静态中使用 */public void readPropertiesMethod3(){//获取输入流注意要有/InputStream is = getClass().getResourceAsStream("/properties/demo.properties");Properties ppt = new Properties();try {ppt.load(is);String name = ppt.getProperty("name");String sex = ppt.getProperty("sex");String age = ppt.getProperty("age");System.out.println("readPropertiesMethod3:");System.out.println("姓名:" + name + ",年龄:" + age + ",性别:" + sex);} catch (IOException e) {e.printStackTrace();}}}

2017年10月12更新

使用配置文件读取数据的很大部分原因是方便管理参数,但是以上的几种方式并不能实现更改配置文件而不重启服务,因为程序在读取配置后会把数据存储在内存中,即使修改了配置文件,但是读取的时候还是从内存中获取的,所以要换种方式获取

Properties pro = new Properties();String proPath = this.getClass().getClassLoader().getResource("properties/demo.properties").getPath();InputStream is = null;try {is = new FileInputStream(proPath);} catch (FileNotFoundException e2) {e2.printStackTrace();}try {pro.load(is);String name = pro.getProperty("name");} catch (IOException e1) {e1.printStackTrace();}


原创粉丝点击