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("属性文件更新错误");   
                }   
            }   
         
    }
    欢迎指正,交流沟通,共同进步!对您有帮助的话点下推荐~~
  • 相关阅读:
    cunda 常用命令,删除,创建,换源
    kivy画板
    基础易忘记
    关于tkinter
    airtest常用指令
    在kivy中加图片
    QQ消算轰炸,我好无聊真的
    自动华键盘使用
    自动化键盘,python
    canvas中的优先级,.after最前,before最底,canvas中间,部件在布局下面
  • 原文地址:https://www.cnblogs.com/gaoyawei/p/7298931.html
Copyright © 2011-2022 走看看