`

properties配置文件的读写类

阅读更多
先贴出代码,有空再来写说明。
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.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class SingleProperty {

    private Properties prop = null;
    private InputStream in = null;
    private OutputStream os;
    private String path;

    public SingleProperty(String path) {
        this.path = path;
        initProperty();
    }

    public SingleProperty() {
        prop = new Properties();
    }

    public void setPath(String path) {
        try {
            in = new FileInputStream(this.path);
        } catch (FileNotFoundException ex) {
        }
    }

    private void initProperty() {
        try {
            prop = new Properties();
            //System.getProperty("user.dir") 获得项目所在位置路径,如 F:\zgh\netbeanspace\ClientTest
            //path=conf/config.properties 此位置为项目所在路径下的conf/config.properties文件路径,conf与lib并列
            in = new FileInputStream(this.path);
        } catch (FileNotFoundException ex) {
        }
    }

    private void setIs() {
        try {
            if (in == null) {
                in = new FileInputStream(this.path);
            }
        } catch (IOException ex) {
        }
    }

    private void setOs() {
        try {
            os = new FileOutputStream(this.path); //"src/org/lt/cj/config/config.properties"
        } catch (FileNotFoundException ex) {
        }
    }

    //获取所有属性
    public Properties getProperty() {
        try {
            setIs();
            prop.load(in);
        } catch (IOException ex) {
        }
        return prop;
    }

    //获取属性值
    public String getValue(String key) {
        String value = "";
        try {
            setIs();
            prop.load(in);
            value = prop.getProperty(key);
        } catch (IOException ex) {
        }
        return value;
    }

    //将Map的键值对添加到配置文件,值允许用空字符
    public void addProperty(Map<String, String> map, String comments) {
        try {
            setIs();
            prop.load(in);
            setOs();

            Set keys = map.keySet();
            for (Iterator it = keys.iterator(); it.hasNext();) {
                String key = (String) it.next();
                String value = map.get(key);
                prop.setProperty(key, value);
            }
            prop.store(os, comments);
        } catch (IOException ex) {
        }
    }

    //修改属性值
    public void setProperty(String key, String value) {
        prop.setProperty(key, value);
    }

    //保存配置文件
    public void store(String comments) {
        try {
            setOs();
            prop.store(os, comments);
        } catch (IOException ex) {
        }
    }

    //删除key所指向的属性值
    public void deleteProperty(String key, String comments) {
        try {
            setIs();
            prop.load(in);
            prop.remove(key);
            setOs();
            prop.store(os, comments);
        } catch (IOException ex) {
        }
    }

    //关闭读配置文件的IO
    public void endAndcloseIO() {
        try {
            if (os != null) {
                os.flush();
                os.close();
            }
            if (in != null) {
                in.close();
            }
        } catch (IOException ex) {
        }
    }

    //打印配置文件中的所有属性
    public void printMap(Map map) {
        Set keys = map.keySet();
        for (Iterator it = keys.iterator(); it.hasNext();) {
            Object key = it.next();
            Object value = map.get(key);
            System.out.println(key + "==" + value);
        }
    }

    public static void main(String[] args) throws Exception {
        SingleProperty p = new SingleProperty("src/com/test/config.properties");
        Map<String, String> map = new HashMap<String, String>();
        map.put("myParam", "hello");
        map.put("parameter2", "Hi,nice to meet you.");
        p.addProperty(map, "修改配置参数");
    }
}
分享到:
评论

相关推荐

    c#操作properties,读写配置文件

    ### C#操作Properties,读写配置文件 在C#编程中,经常需要处理应用程序的配置信息,例如数据库连接字符串、用户界面的语言设置等。这些配置信息通常存储在配置文件中,便于程序运行时动态加载和修改。C#提供了一种...

    java读写properties配置文件

    ### Java读写Properties配置文件详解 #### 一、引言 在Java开发中,`Properties`类被广泛用于处理各种类型的配置文件。这些文件通常包含了应用程序运行时所需的配置信息,如数据库连接信息、系统参数等。`...

    Python实现读取Properties配置文件的方法

    实际使用这个类时,首先确定配置文件的路径,然后创建`Properties`类的实例,最后调用`getProperties`方法获取配置字典: ```python import sys fileName = sys.path[0] + '\\' + 'system.properties' p = ...

    c++ 对properties配置文件读写源代码

    cout打开配置文件失败"; getchar(); return 0; } cprop.load(); vector&lt;string&gt; vec = cprop.read("key3"); for (int i=0; i();i++) { cout[i].c_str(); } cprop.close();*/ /*写操作 CProperties cprop_write; ...

    java读取properties配置文件

    本文将详细介绍如何在Java中读取`properties`配置文件。 首先,我们需要了解`properties`文件的格式。一个标准的`.properties`文件通常包含多个行,每行由一个键和一个值组成,它们之间用等号(`=`)或冒号(`:`)...

    java对properties配置文件的读和写

    读取properties配置文件** 在Java中读取`properties`文件通常涉及以下步骤: 1.1.1 创建`Properties`对象:`Properties`类是Java提供的内置类,用于处理`properties`文件中的键值对。 ```java Properties ...

    Properties文件读写;Property文件读写;Property

    在Java编程语言中,Properties文件是一种常见的存储配置信息的方式,它们通常用于保存应用程序的设置、数据库连接字符串等数据。Properties文件以键值对的形式组织,其中键和值之间用等号(=)或冒号(:)分隔。在本...

    SpringBoot获取yml和properties配置文件的内容

    YAML (YAML Ain't Markup Language) 是一种易于读写的语言,特别适合于配置文件。在提供的示例中,我们看到了一个`application.yml`文件的部分内容,其中定义了自定义的属性和值: ```yaml myYml: simpleProp: ...

    easconfig 配置文件读写

    "easconfig 配置文件读写"是一个针对XML格式和属性文件(.properties)进行高效管理的工具,它提供了便捷的配置读取和写入功能,使得开发者能更轻松地处理这些配置信息。 首先,让我们深入理解XML配置文件。XML,...

    读取properties文件工具类

    通过这样的工具类,开发者可以方便地加载和获取配置文件中的属性值,避免重复编写相同的代码。下面我们将详细探讨`properties`文件、如何创建工具类以及如何使用此类进行文件读取。 1. **什么是.properties文件** ...

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

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

    Java 读写Properties配置文件详解

    Properties类与Properties配置文件 Properties类主要用于读取和写入.properties格式的配置文件。这种文件格式简单、易于理解和编辑,常被用来存储应用的配置参数,如数据库连接信息、系统环境变量等。 ### 2. ...

    使用Properties类来读取配置文件

    在Java编程中,管理应用程序的配置信息是一项常见的任务。这些配置信息通常存储在文本...在实际开发中,为了提高代码的可维护性和可扩展性,通常会封装成工具类或者服务,提供更高级别的接口来处理配置文件的读写操作。

    一般文件以及配置文件的读写操作

    一般文件以及配置文件的读写操作: 包括一般text文件的读取,以及properties文件的读写操作

    Properties和xml读写操作

    根据给定文件的信息,我们可以总结出...总结以上内容,我们了解了如何在 Java 中使用 `Properties` 类进行配置文件的读写操作,以及如何使用 DOM 解析器来处理 XML 文件。这些技术是开发过程中经常用到的基本技能之一。

    Java写的Properties读写类

    Java自带的Properties不好用,自己写了一个直接读写类,支持配置文件描述,支持对像值的描述,支持指定文件编码(默认UTF-8)

    Java源码读写Properties文件.rar

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

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

    在Java编程中,读写`.properties`文件是一个常见的任务,这些文件通常用于存储配置信息、设置或环境变量。本文将深入探讨如何在Java中高效地处理`.properties`文件,包括读取、写入以及更新其内容。我们将参考提供的...

    CONF_FILE_RW.rar_conf配置文件_dst_conf_file_读写配置 conf_读写配置文件

    "CONF_FILE_RW.rar"这个压缩包显然包含了与配置文件读写相关的资源,特别是针对"dst_conf_file"的配置参数操作。让我们深入探讨配置文件的重要性、如何读取和写入配置文件,以及在实际应用中的相关知识。 首先,...

    java 动态修改配置文件

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

Global site tag (gtag.js) - Google Analytics