关于JAVA中怎么读取和修改.properties文件中的值

来源:互联网 发布:上古卷轴5捏脸数据ece 编辑:程序博客网 时间:2024/06/03 09:15

第一种方式:

以我自己的项目为原型这里案例一个最简单的获取方法

定义一个获取类

package com.boli.tianchuang.sys.util;import java.io.*;import java.util.Properties;/** * Desc:properties文件获取工具类 * Created by  */public class PropertyUtil {    private static Properties props;    static{        loadProps();    }    synchronized static private void loadProps(){        props = new Properties();        InputStream in = null;        try {        //第一种,通过类加载器进行获取properties文件流        //in = PropertyUtil.class.getClassLoader().getResourceAsStream("sysConfig.properties");            //第二种,通过类进行获取properties文件流            in = PropertyUtil.class.getResourceAsStream("/properties/sysConfig.properties");            props.load(in);        } catch (FileNotFoundException e) {            //logger.error("sysConfig.properties文件未找到");        } catch (IOException e) {            //logger.error("出现IOException");        } finally {            try {                if(null != in) {                    in.close();                }            } catch (IOException e) {                //logger.error("sysConfig.properties文件流关闭出现异常");            }        }        //logger.info("加载properties文件内容完成...........");        //logger.info("properties文件内容:" + props);    }    public static String getProperty(String key){        if(null == props) {            loadProps();        }        return props.getProperty(key);    }    public static String getProperty(String key, String defaultValue) {        if(null == props) {            loadProps();        }        return props.getProperty(key, defaultValue);    }}


下面是我的项目的文件目录

上面的类通过key就可以直接获取value了

这里特别注意的就是你的项目的文件路径了,这里一定要写对。


第二种方式:

文件目录与上图相同,但是这里我多了增加、修改功能,以下是代码和解释

package com.boli.tianchuang.helper;  import java.io.FileInputStream;  import java.io.FileNotFoundException;  import java.io.FileOutputStream;  import java.io.IOException;  import java.util.Properties;public class CeShi {  private static Properties prop;public static void load(String path){//这里的path是项目文件的绝对路径//先获取项目绝对路径:Thread.currentThread().getContextClassLoader().getResource("").getPath();//然后在项目路径后面拼接"properties/sysConfig.properties";prop= new Properties();// 属性集合对象   FileInputStream fis;          try {          System.out.println(path);        fis = new FileInputStream(path);            prop.load(fis);            fis.close();// 关闭流          } catch (FileNotFoundException e) {              e.printStackTrace();          } catch (IOException e) {              e.printStackTrace();          } }    //参数为要修改的文件路径  以及要修改的属性名和属性值      public static Boolean updatePro(String path,String key,String value){    if(prop==null){    load(path);    System.out.println("修改前重新加载一遍");    }    System.out.println("获取添加或修改前的属性值:"+key+"=" + prop.getProperty(key));        prop.setProperty(key, value);           // 文件输出流           try {              FileOutputStream fos = new FileOutputStream(path);               // 将Properties集合保存到流中               prop.store(fos, "Copyright (c) Boxcode Studio");               fos.close();// 关闭流           } catch (FileNotFoundException e) {              // TODO Auto-generated catch block              e.printStackTrace();              return false;          } catch (IOException e) {              // TODO Auto-generated catch block              e.printStackTrace();              return false;          }          System.out.println("获取添加或修改后的属性值:"+key+"=" + prop.getProperty(key));        return true;      }        //参数为要修改的文件路径  以及要修改的属性名和属性值      public static String getPro(String path,String key){      if(prop==null){    load(path);    System.out.println("重新加载一遍");    }        FileInputStream fis;          try {              fis = new FileInputStream(path);              prop.load(fis);// 将属性文件流装载到Properties对象中               fis.close();// 关闭流          } catch (FileNotFoundException e) {              e.printStackTrace();          } catch (IOException e) {              e.printStackTrace();          }          System.out.println("查询到的"+key+"的值:"+prop.getProperty(key));        return prop.getProperty(key);      }  }


原创粉丝点击