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
* @version
*/
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", "[email protected]");
        System.out.println("操作完成");
    }
}

  

时间: 2024-07-31 07:21:39

Java配置文件Properties的读取、写入与更新操作的相关文章

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

http://breezylee.iteye.com/blog/1340868 对Java配置文件Properties的读取.写入与更新操作 博客分类: javase properties 对Java配置文件Properties的读取.写入与更新操作注:当前项目路径是String filepath=System.getProperty("user.dir"); 对下面的程序很有用... /*** 实现对Java配置文件Properties的读取.写入与更新操作*/package tes

day20 java 语言中的读取写入数据(一)

day20  java 语言中的读取写入数据(一) 一.io概述 io数据流的读写功能,在实际的生活中也很常见,比如文件的上传.下载,日志的自动更新等都与io读写密切相关.io又被分为了读取数据和写入数据两个大的功能.下面就来看看读取数据的几种类. 二.读取数据的几种方式 读取数据被分为了字节流读取数据,和字符流读取数据两种. (一):字符输入流: 1.fileReader类.是字符流读取数据 2.BufferedReader类.带有缓冲流读取数据 (二):字节输入流: 1.FileInputS

day21 java 语言中的读取写入数据(二)

day21  java 语言中的读取写入数据(二) 一.概述: 使用IO流写文件,就体现的是下载的功能.所以说很有必要单独说一下. 二.写入功能:(下载) 写入功能同样也是被分隔为了字符流写入和字节流写入两个方式. (一):字符流写入数据 1.FileWriter类. 2.bufferedwriter类.带缓冲流 (二):字节流写入数据 1.FileOutputStream类. 2.bufferoutputstream类.带有缓冲流 三.具体实例     (一):字符流写入数据 //io数据流输

【Properties文件】Java使用Properties来读取配置文件

配置文件位置及内容 执行结果 程序代码 package Utils.ConfigFile;   import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Enu

关于Java配置文件properties的学习

在Java早期的开发中,常用*.properties文件存储一些配置信息.其文件中的信息主要是以key=value的方式进行存储,在早期受到广泛的应用.而后随着xml使用的广泛,其位置渐渐被取代,不过,目前仍有一些框架如log4J在使用它.最近在弄自己的小玩意儿的时候也用到了它,顺便加深了一下了解,在此分享. Java在对*.properties文件进行操作的时候,实际上是通过IO对文档进行逐行的扫描,然后将文中非注释的部分存放在一个properties对象中.Properties 实际上是继承

Java配置文件Properties加载

import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * Created by fubin on 2017/1/12 0012. * * * 配置文件加载与访问 * * */ public class PropertiesUtils { private static Properties PRO = new Properties(); static { InputStrea

Java之properties文件读取

1.工程结构 2.ConfigFileTest.java package com.configfile; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import java.util.Properties; public class ConfigFileTest { private static Properties config = null; static { In

Java -- JDBC 学习--通过Statement进行数据库更新操作

通过 JDBC 向指定的数据表中插入一条记录. 1. Statement: 用于执行 SQL 语句的对象 1). 通过 Connection 的 createStatement() 方法来获取 2). 通过 executeUpdate(sql) 可以执行 SQL 语句. 3). 传入的 SQL 可以是 INSRET, UPDATE 或 DELETE. 但不能是 SELECT 2. Connection.Statement 都是应用程序和数据库服务器的连接资源. 使用后一定要关闭. 需要在 fin

java properties类读取配置文件

1.JAVA Properties类,在java.util包里,具体类是java.util.properties.Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集.不过Properties有特殊的地方,就是它的键和值都是字符串类型.2.properties类是集合类,里面要填充keyvalue键值对.将.properties文件里的信息加载到properties对象中.3.将.properties文件里的信息加载到properties对象