`
mizhihua
  • 浏览: 53837 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】更新PROTERTIES

 
阅读更多
注:当前项目路径是

String filepath=System.getProperty("user.dir");

对下面的程序很有用...

/**
* 实现对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 
* @version 2008.11.14
*/
public class SetSystemProperty {
    //属性文件的路径
    static String profilepath="mail.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);
            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("mail.properties", "MAIL_SERVER_PASSWORD");
        writeProperties("MAIL_SERVER_INCOMING", "327@qq.com");        
        System.out.println("操作完成");
    }
}
分享到:
评论

相关推荐

    java读取proterties的六种方法

    Java 读取 Properties 文件是应用程序中常见的操作,用于管理配置参数和系统属性。Properties 类是 Java 核心库的一部分,提供了加载和存储键值对的能力。以下是对标题和描述中所述六种方法的详细说明: ...

    eclipse properties

    Eclipse Properties是一个关键的组成部分,它是Eclipse集成开发环境(IDE)中的一个重要配置工具。Eclipse作为一款流行的Java开发工具,其灵活性和可定制性在很大程度上得益于丰富的属性设置。当我们谈论“eclipse ...

    详解Spring Boot加载properties和yml配置文件

    在Spring Boot应用中,配置文件的管理是至关重要的,它允许开发者定义应用程序的行为,如数据库连接、服务端口等。Spring Boot支持两种主要的配置文件格式:`.properties`和`.yml`。这两种格式提供了不同的语法,但...

    gerber文件导坐标.doc

    2. 设定每层 Gerber 文件的属性:鼠标右击屏幕右下侧显示的 Gerber 文件,选择“Proterties…”,弹出“GC Explore”对话框,在 Layer Type 选项框中设置每层 Gerber 文件的属性。 3. 切换公制单位:选择菜单“View...

    AD18AD20 properitys属性窗打不开告警问题.doc

    6. 解决方案:移除引起问题的库,重新更新工程并保存,重启软件后,问题得到解决。 总结以上经验,当遇到AD的属性窗打不开的问题时,可以尝试以下步骤: 1. 检查系统资源使用情况,确保有足够的内存和CPU资源。 2....

    如何在Protel中画多张原理图(资料整理)

    1. 新建一张原理图,点击"PlaceSheetSymbol"放置一个原理图符号,然后右击选其“proterties”,在 filename 一栏输入你准备与之绑定的原理图文件名。确定 ok。依此类推...,直到把全部的原理图与每一个放置的原理图...

Global site tag (gtag.js) - Google Analytics