`

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

阅读更多

对Java配置文件Properties的读取、写入与更新操作
注:当前项目路径是
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
*/
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("操作完成");
    }
}

 

另一个例子:此处的文件common.properties和 Config类都在class src下面

public static String getValue(String key) {
		try {
			InputStream inputStream = Config.class.getClassLoader().getResourceAsStream("common.properties");
			property.load(inputStream);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return (String) property.get(key);
	}
 

 

分享到:
评论

相关推荐

    java读写properties配置文件

    本文将详细介绍如何使用Java来读取和写入`Properties`配置文件。 #### 二、Properties类简介 `Properties`类是`java.util`包下的一个类,它专门用来处理文本配置文件。这类文件通常遵循“键=值”的格式,例如: `...

    利用Java的Properties 类读取配置文件信息

    在Java编程中,读取配置文件是常见的任务,主要用于存储应用程序的设置或环境变量,以方便管理和维护。Java提供了一个内置的`java.util.Properties`类,用于处理`.properties`文件,这种格式通常用来存储键值对,即...

    java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

    然而,有时可能会遇到一些常见问题,比如系统找不到指定的Properties文件路径、写入后读取显示正常但实际文件数据未更新等。下面我们将详细讨论这些问题及其解决方案。 首先,让我们看看如何在Java中正确地读取...

    java对properties配置文件的读和写

    本篇文章将详细探讨如何在Java中读取、写入、修改以及删除`properties`配置文件。 **1. 读取properties配置文件** 在Java中读取`properties`文件通常涉及以下步骤: 1.1.1 创建`Properties`对象:`Properties`类...

    java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

    在Java编程中,Properties文件是用于存储配置信息的关键组件,如数据库连接字符串、应用程序设置等。在处理Properties文件时,可能会...通过学习和实践这些解决方案,你将在Java应用开发中更有效地管理和更新配置文件。

    读取properties返回map并写入文件

    在Java编程中,处理配置文件通常是一个常见的任务,特别是.properties文件。这些文件用于存储应用程序的配置参数,便于管理和更改。本篇文章将详细讲解如何读取.properties文件,将其内容转化为Map对象,以及如何将...

    Java_Properties_类读取配置文件信息

    【Java_Properties_类读取配置文件信息】 在软件开发中,配置文件是必不可少的,因为它们允许我们灵活地管理程序中的可变参数,而无需修改源代码。Java 支持使用 `.properties` 文件作为其标准配置文件格式,这得益...

    java 动态修改配置文件

    `java.util.Properties`类继承自`Hashtable`,用于存储键值对,常用于处理.properties格式的配置文件。这些文件通常以ASCII编码保存,但为了支持中文,我们需要确保使用UTF-8编码。 1. **配置文件读取**: - 使用`...

    java配置文件修改读取工具类,包括yml和properties类型文件

    总结来说,`YmlUtil.java`和`PropertiesUtil.java`是Java开发中的实用工具类,它们简化了YAML和Properties配置文件的读取和修改过程,提高了代码的可维护性和灵活性。理解和使用这些工具类,对于提升Java项目管理...

    Java源码读写Properties文件.rar

    总结来说,Java中的Properties类是管理配置文件的关键工具,它提供了一套完整的API来读取、写入和操作键值对。掌握这部分知识对于任何Java开发者来说都是至关重要的,因为配置文件在软件开发中扮演着不可或缺的角色...

    java读取配置文件xml ,properties,txt

    在Java编程中,读取配置文件是常见的任务,这些配置文件可以是XML、properties或纯文本(txt)格式。配置文件通常用于存储应用程序的设置、连接信息和其他动态可配置的数据,以便于在运行时访问和修改。下面我们将...

    用JAVA轻松操作properties文件

    在Java开发中,`properties`文件是一种常见的配置文件格式,主要用于存储一系列的键值对。它通常用于保存应用程序的各种配置信息,如数据库连接字符串、服务器地址等。Java提供了一个内置类`Properties`来方便地读取...

    java操作properties方法

    在Java编程中,操作配置文件,尤其是`.properties`文件,是一项常见的任务。`.properties`文件主要用于存储应用程序的配置信息,通常包含键值对,其中键是唯一的标识符,值是与该键相关联的数据。Java提供了`java....

    java读取.properties配置信息

    Java提供了内置的`Properties`类来方便地读取和写入这些配置文件,使得在程序中动态访问这些设置变得简单。 首先,我们需要创建`.properties`文件。例如,我们可以创建一个名为`config.properties`的文件,内容如下...

    java properties文件中文转化

    默认情况下,Java Properties类在读取和写入文件时使用ISO-8859-1编码,这是一种西欧字符集,不包含中文字符。当我们在properties文件中直接使用中文时,Java在读取时可能会出现乱码。为了解决这个问题,我们可以...

    java ini配置文件读取

    Java INI配置文件读取是Java开发中常见的一项任务,主要涉及到对INI格式配置文件的解析、读取、以及可能的修改操作。INI文件是一种简单的文本格式,常用于存储应用程序的配置参数,其结构通常由多个节(Section)...

    Java Properties 解决中文乱码和顺序读写.docx

    Java Properties 类是Java标准库中用于处理配置文件的关键组件,主要负责存储和加载键值对数据,常用于管理应用程序的配置信息。配置文件通常以`.properties`为扩展名,采用文本格式,每行包含一个键值对,键和值...

    java读写xxx.properties文件实用小例

    本文将深入探讨如何在Java中高效地处理`.properties`文件,包括读取、写入以及更新其内容。我们将参考提供的博客链接(尽管实际链接未给出,但我们可以基于通用做法进行讲解)和一个名为`readPropertiesTest`的测试...

    java 动态修改Properties,src下或者指定路径

    在Java编程中,有时我们需要在运行时动态地修改配置文件,比如Properties文件。Properties文件是Java用来存储配置信息的一种常见方式,通常包含了应用的各种参数设置。然而,一旦将应用程序打包成JAR,内部的资源...

    Java Swing操作properties文件

    在Java中,`java.util.Properties` 类提供了读取和写入properties文件的功能。下面将详细讲解如何在Java Swing应用中操作properties文件。 1. **加载properties文件** 要加载一个properties文件,首先需要创建一个...

Global site tag (gtag.js) - Google Analytics