• 实现对Java配置文件Properties的读取、写入与更新操作


    /**
    * 实现对Java配置文件Properties的读取、写入与更新操作
    */
    package test;
    
    import java.io.BufferedInputStream;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Properties;
    
    
    /**
    * @author
    * @song
    */
    public class demo {
    	
        //属性文件的路径
        static String profilepath="WebRoot/WEB-INF/admin/admin.properties";
        /**
        * 采用静态方法
        */
        private static Properties props = new Properties();
        static {
            try {
                props.load(new FileInputStream(profilepath));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                System.exit(-1);
            } catch (IOException e) {       
                System.exit(-1);
            }
        }
    
        /**
        * 读取属性文件中相应键的值
        * @param key
        *            主键
        * @return String
        */
        public static String getKeyValue(String key) {
            return props.getProperty(key);
        }
    
        /**
        * 根据主键key读取主键的值value
        * @param filePath 属性文件路径
        * @param key 键名
        */
        public static String readValue(String filePath, String key) {
        	
            Properties props = new Properties();
            try {
                InputStream in = new BufferedInputStream(new FileInputStream(
                        filePath));
                props.load(in);
                String value = props.getProperty(key);
                System.out.println(key +"键的值是:"+ value);
                if(value.equals("123456")){
                	System.out.println("登录成功!");
                }else {
    				System.out.println("登录失败!");
    			}
                return value;
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
        
        /**
        * 插入一对properties信息(主键及其键值)
        * @param keyname 键名
        * @param keyvalue 键值
        */
        public static void writeProperties(String keyname,String keyvalue) {       
            try {
                // 调用 Hashtable 的方法 put,使用 getProperty 方法提供并行性。
                // 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
                OutputStream fos = new FileOutputStream(profilepath);
                props.setProperty(keyname, keyvalue);
                // 以适合使用 load 方法加载到 Properties 表中的格式,
                // 将此 Properties 表中的属性列表(键和元素对)写入输出流
                props.store(fos, "Update '" + keyname + "' value");
            } catch (IOException e) {
                System.err.println("属性文件更新错误");
            }
        }
    
        /**
        * 更新properties文件的键值对
        * @param keyname 键名
        * @param keyvalue 键值
        */
        public void updateProperties(String keyname,String keyvalue) {
            try {
                props.load(new FileInputStream(profilepath));
                // 调用 Hashtable 的方法 put,使用 getProperty 方法提供并行性。
                // 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
                OutputStream fos = new FileOutputStream(profilepath);           
                props.setProperty(keyname, keyvalue);
                // 以适合使用 load 方法加载到 Properties 表中的格式,
                // 将此 Properties 表中的属性列表(键和元素对)写入输出流
                props.store(fos, "Update '" + keyname + "' value");
            } catch (IOException e) {
                System.err.println("属性文件更新错误");
            }
        }
        //测试代码
        public static void main(String[] args) {
            readValue("WebRoot/WEB-INF/admin/admin.properties", "zs");
            //writeProperties("ls", "123456,1");       
            System.out.println("操作完成");
        }
    }
    

      

  • 相关阅读:
    如何将 Vim 剪贴板里面的东西粘贴到 Vim 之外的地方? (Ubuntu18.04系统亲测)
    联想还是中国企业吗,我们还应该支持联想吗?以后我还是不要选择联想的产品了吧
    使用Linux桌面壁纸应用variety发现的一些问题
    线性代数预备知识——向量与空间
    线性代数预备知识——向量及方程组
    【线性代数的本质】线性空间、基向量的几何解释
    一时失误的权限设计
    闲谈企业管理执行力的问题
    执行力的不够的系统解决方案
    执行力的问题系统的无奈
  • 原文地址:https://www.cnblogs.com/songjiabo/p/9110936.html
Copyright © 2020-2023  润新知