zoukankan      html  css  js  c++  java
  • 一个不错的java的配置文件的设置

    package property;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.net.URL;
    import java.util.Properties;
    
    public class AppConfig {
        private static File proFile = null;
    
        static {
            String className = AppConfig.class.getName();
    
            String classNamePath = className.replace(".", "/") + ".class";
    
            URL is = AppConfig.class.getClassLoader().getResource(classNamePath);
    
            String path = is.getFile();
            File file = new File(path);
            proFile = new File(file.getParent() + File.separator + "test.property");
        }
    
        public boolean containsProperty(String key) {
            Properties props = getProperties();
            return props.containsKey(key);
        }
    
        
        /**
         * 得到所有的配置
         * 
         * @return
         */
        public Properties get() {
            FileInputStream fis = null;
            Properties props = new Properties();
            try {
    
                fis = new FileInputStream(proFile);
                props.load(fis);
            } catch (Exception e) {
            } finally {
                try {
                    fis.close();
                } catch (Exception e) {
                }
            }
            return props;
        }
    
        public String get(String key) {
            Properties props = get();
            return (props != null) ? props.getProperty(key) : null;
        }
    
        public Properties getProperties() {
            return get();
        }
    
        /**
         * 得到cookie
         * 
         * @param key
         * @return
         */
        public String getProperty(String key) {
            return get(key);
        }
    
        /**
         * 删除配置文件
         * 
         * @param key
         */
        public void remove(String... key) {
            Properties props = get();
            for (String k : key)
                props.remove(k);
            setProps(props);
        }
    
        public void removeProperty(String... key) {
            remove(key);
        }
    
        public void set(Properties ps) {
            Properties props = get();
            props.putAll(ps);
            setProps(props);
        }
    
        /**
         * 相当于
         * 
         * @param key
         * @param value
         */
        public void set(String key, String value) {
            Properties props = get();
            props.setProperty(key, value);
            setProps(props);
        }
    
        public void setProperties(Properties ps) {
            set(ps);
        }
    
        public void setProperty(String key, String value) {
            set(key, value);
        }
    
        /**
         * 添加一个配置
         * @param p
         */
        private void setProps(Properties p) {
            FileOutputStream fos = null;
            try {
                // 把config建在files目录下
                // fos = activity.openFileOutput(APP_CONFIG, Context.MODE_PRIVATE);
    
                // 把config建在(自定义)app_config的目录下
                fos = new FileOutputStream(proFile);
    
                p.store(fos, null);
                fos.flush();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    fos.close();
                } catch (Exception e) {
                }
            }
        }
    
    }
  • 相关阅读:
    响应式布局
    C# 基础复习 二 面向对象
    C# 基础复习 一 数据类型
    .net 面试题
    Unity5.X 创建基本的3D游戏场景
    Unity5.X 编辑器介绍
    Unity5.X 开发资源介绍
    SignalR
    vue-cli
    Vue.js
  • 原文地址:https://www.cnblogs.com/Cyning/p/3340371.html
Copyright © 2011-2022 走看看