zoukankan      html  css  js  c++  java
  • java 读取配置文件 与更新

    笔记

    public class Config {
        
         private static Properties props = new Properties();
         static File configFile = null;
            static {
                InputStreamReader reader = null;
                try {
                    File dir = new File(System.getProperty("user.dir"));
                    configFile = new File(dir, "config.properties.dev");
                    if (!configFile.exists()) {
    //                    String path = Thread.currentThread().getClass().getClassLoader().getResource("config.properties").getPath();
    //                    configFile = new File(path);
                        configFile = new File(dir, "config.properties");
                    }
                    reader = new InputStreamReader(new FileInputStream(configFile), "UTF-8");
                    props.load(reader);
                } catch (FileNotFoundException e) {
                } catch (Exception e) {
                } finally {
                    if (reader != null) {
                        try {
                            reader.close();
                        } catch (IOException e) {
                        }
                    }
                }
            }
            
            public static String getDsl(){
                System.out.println("dsl" + props.getProperty("dsl"));
                return props.getProperty("dsl");
            }
            
            public static String getDate(){
                System.out.println("date" + props.getProperty("date"));
                return props.getProperty("date");
            }
            
            public static void updateProperties(String keyname,String keyvalue) {   
                try {   
                    props.load(new FileInputStream(configFile));   
                    // 调用 Hashtable 的方法 put,使用 getProperty 方法提供并行性。   
                    // 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。   
                    props.setProperty(keyname, keyvalue);   
                    OutputStream fos = new FileOutputStream(configFile);              
                    // 以适合使用 load 方法加载到 Properties 表中的格式,   
                    // 将此 Properties 表中的属性列表(键和元素对)写入输出流   
                    props.store(fos, "Update '" + keyname + "' value");   
                } catch (IOException e) {   
                    System.err.println("属性文件更新错误");   
                }   
            }   
         
    }
    欢迎指正,交流沟通,共同进步!对您有帮助的话点下推荐~~
  • 相关阅读:
    快速入门 ASP.NET MVC
    关于ASP.NET中由于无法创建应用程序域,因此未能执行请求解决方案
    Microsoft ASP.NET MVC Beta IIS6 部署
    弹窗显示正在执行的任务
    多线程加深理解_进攻五个城
    反射与配置文件简单使用
    C#中MemberwiseClone的理解
    C# App.config 自定义 配置节 报错“配置系统未能初始化” 解决方法
    多线程信号源的理解
    日志的记录
  • 原文地址:https://www.cnblogs.com/gaoyawei/p/7298931.html
Copyright © 2011-2022 走看看