前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 操作 properties 文件

Java 操作 properties 文件

原创
作者头像
用户1503405
修改2021-09-23 14:47:46
5220
修改2021-09-23 14:47:46
举报
文章被收录于专栏:棒棒小飞人棒棒小飞人
代码语言:javascript
复制
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;
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 static 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", "jdbc_mysql");  
    writeProperties("jdbc_mysql", "127.0.0.1");        
    writeProperties("username", "root");        
    writeProperties("password", "123");    
    updateProperties("password", "456");    
    System.out.println("操作完成");  
}  
 
}   </pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com