`

JAVA操作properties或conf文件类型的配置文件的方法

 
阅读更多

JAVA操作properties文件

java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties

文件中,可以用"#"来作注释,properties文件在Java编程中用到的地方很多,操作很方便。
一、properties文件

test.properties
------------------------------------------------------
#################################
#   工商报表应用IcisReport的配置文件#
#   日期:2006年11月21日 #
#################################
#
#   说明:业务系统TopIcis和报表系统IcisReport是分离的
#   可分开部署到不同的服务器上,也可以部署到同一个服务
#   器上;IcisReprot作为独立的web应用程序可以使用任何
#   的Servlet容器或者J2EE服务器部署并单独运行,也可以
#   通过业务系统的接口调用作为业务系统的一个库来应用.
#
#   IcisReport的ip
IcisReport.server.ip=192.168.3.143
#   IcisReport的端口
IcisReport.server.port=8080
#   IcisReport的上下文路径
IcisReport.contextPath=/IcisReport

------------------------------------------------------ 
Properties类的重要方法
Properties 类存在于胞 Java.util 中,该类继承自 Hashtable
1. getProperty ( String  key) ,   用指定的键在此属性列表中搜索属性。也就是通过参数 key ,得到 key 所对应的 value。
2. load ( InputStream  inStream) ,从输入流中读取属性列表(键和元素对)。通过对指定的文件(比如说上面的 test.properties 文件)进行装载来获取该文

件中的所有键 - 值对。以供 getProperty ( String  key) 来搜索。
3. setProperty ( String  key, String  value) ,调用 Hashtable 的方法 put 。他通过调用基类的put方法来设置 键 - 值对。 
4. store ( OutputStream  out, String  comments) ,   以适合使用 load 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素

对)写入输出流。与 load 方法相反,该方法将键 - 值对写入到指定的文件中去。
5. clear () ,清除所有装载的 键 - 值对。该方法在基类中提供。
-------------------------------

二、操作properties文件的java方法 

读属性文件
Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("/IcisReport.properties");
prop.load(in);
Set keyValue = prop.keySet();
for (Iterator it = keyValue.iterator(); it.hasNext();)
{
String key = (String) it.next();
}
------------------------
outputFile = new FileOutputStream(fileName);
propertie.store(outputFile, description);
outputFile.close();
-----------------------------------------------------------------------------------------
Class.getResourceAsStream ("/some/pkg/resource.properties");
ClassLoader.getResourceAsStream ("some/pkg/resource.properties");
java.util.ResourceBundle rs = java.util.ResourceBundle.getBundle("some.pkg.resource");
rs.getString("xiaofei");
-----------------------------------------------------------------------------------------
写属性文件
Configuration saveCf = new Configuration();
saveCf.setValue("min", "10");
saveCf.setValue("max", "1000");
saveCf.saveFile(".\config\save.perperties","test");

总结:javaproperties文件需要放到classpath下面,这样程序才能读取到,有关classpath实际上就是java类或者库的存放路径,在java工程中,properties放到

class文件一块。在web应用中,最简单的方法是放到web应用的WEB- INF\classes目录下即可,也可以放在其他文件夹下面,这时候需要在设置classpath环境变量的

时候,将这个文件夹路径加到 classpath变量中,这样也也可以读取到。在此,你需要对classpath有个深刻理解,classpath绝非系统中刻意设定的那个系统环境变

量,WEB-INF\classes其实也是,java工程的class文件目录也是。

发个例子大家自己看哈.
package control;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.Properties;

public class TestMain {
 
 //根据key读取value
 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的全部信息
    public static void readProperties(String filePath) {
     Properties props = new Properties();
        try {
         InputStream in = new BufferedInputStream (new FileInputStream(filePath));
         props.load(in);
            Enumeration en = props.propertyNames();
             while (en.hasMoreElements()) {
              String key = (String) en.nextElement();
                    String Property = props.getProperty (key);
                    System.out.println(key+Property);
                }
        } catch (Exception e) {
         e.printStackTrace();
        }
    }

    //写入properties信息
    public static void writeProperties(String filePath,String parameterName,String parameterValue) {
     Properties prop = new Properties();
     try {
      InputStream fis = new FileInputStream(filePath);
            //从输入流中读取属性列表(键和元素对)
            prop.load(fis);
            //调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。
            //强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
            OutputStream fos = new FileOutputStream(filePath);
            prop.setProperty(parameterName, parameterValue);
            //以适合使用 load 方法加载到 Properties 表中的格式,
            //将此 Properties 表中的属性列表(键和元素对)写入输出流
            prop.store(fos, "Update '" + parameterName + "' value");
        } catch (IOException e) {
         System.err.println("Visit "+filePath+" for updating "+parameterName+" value error");
        }
    }

    public static void main(String[] args) {
     readValue("info.properties","url");
        writeProperties("info.properties","age","21");
        readProperties("info.properties" );
        System.out.println("OK");
    }

 发个例子大家自己看哈.

package control;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.Properties;

public class TestMain {
 
 //根据key读取value
 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的全部信息
    public static void readProperties(String filePath) {
     Properties props = new Properties();
        try {
         InputStream in = new BufferedInputStream (new FileInputStream(filePath));
         props.load(in);
            Enumeration en = props.propertyNames();
             while (en.hasMoreElements()) {
              String key = (String) en.nextElement();
                    String Property = props.getProperty (key);
                    System.out.println(key+Property);
                }
        } catch (Exception e) {
         e.printStackTrace();
        }
    }

    //写入properties信息
    public static void writeProperties(String filePath,String parameterName,String parameterValue) {
     Properties prop = new Properties();
     try {
      InputStream fis = new FileInputStream(filePath);
            //从输入流中读取属性列表(键和元素对)
            prop.load(fis);
            //调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。
            //强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
            OutputStream fos = new FileOutputStream(filePath);
            prop.setProperty(parameterName, parameterValue);
            //以适合使用 load 方法加载到 Properties 表中的格式,
            //将此 Properties 表中的属性列表(键和元素对)写入输出流
            prop.store(fos, "Update '" + parameterName + "' value");
        } catch (IOException e) {
         System.err.println("Visit "+filePath+" for updating "+parameterName+" value error");
        }
    }

    public static void main(String[] args) {
     readValue("info.properties","url");
        writeProperties("info.properties","age","21");
        readProperties("info.properties" );
        System.out.println("OK");
    }
}

<script type="text/javascript"></script>

分享到:
评论
1 楼 win2011ccc 2012-11-06  

相关推荐

    java操作properties属性文件jp.gr.java_conf.ussiy.app.propedit_5.3.3.jar,有例子

    Java操作Properties属性文件是Java开发中的常见任务,主要用于配置应用的参数或存储系统设置。`jp.gr.java_conf.ussiy.app.propedit_5.3.3.jar` 是一个专门用于编辑和管理Properties文件的工具,这使得开发者可以...

    配置文件读取

    Java配置文件读取,采用单例模式加载config.properties

    java读取WEB-INF或src目录下的properties配置文件

    大家都喜欢把配置文件放在src目录下,如果有10个以上的配置文件为什么不考虑在WEB-INF目录下新建一个文件夹,专门放配置文件;这样即好管理,文件安全性又高。亲问题已经解决,把源代码共享给大家,已经通过测试;...

    conf:使用Java读取各种配置文件的类库

    这是一个解决Java开发中读取配置文件每次都要重写的困惑。 特性 开箱即用,简单方便 支持JDK1.6+ 无需过多依赖,按需添加 状态 [已完成] 解析Properties配置文件 [待完成] 解析Xml配置文件 [待完成] 解析Ini配置...

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

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

    java简单读取properties配置文件的方法示例

    在Java中读取Properties配置文件是一种非常常见的操作,本文将详细介绍Java简单读取Properties配置文件的方法。 Properties配置文件的读取流程: 1. 首先,创建一个Properties对象,用于存储配置文件中的信息。 2...

    java配置文件 beta v1.0

    "Java配置文件 beta v1.0" 是一个专为处理各种格式配置文件的工具,它能够读写ini、conf、txt、properties等常见类型的配置文件,极大地提升了开发者在处理配置时的灵活性和效率。 对于配置文件的处理,Java提供了...

    hadoop2.6conf下的正确配置文件

    1. **core-site.xml**:这是Hadoop的核心配置文件,包含了与Hadoop文件系统操作相关的设置。其中最重要的是`fs.defaultFS`,它指定了默认的文件系统,通常是HDFS(Hadoop Distributed File System)的地址,如`hdfs:...

    Java操作FastDFS文件上传

    然后,为了进行文件上传,我们需要配置FastDFS的相关连接参数,如 Tracker Server 的IP地址和端口号,这些信息通常在项目的配置文件(如`application.properties`)中定义。例如: ``` fastdfs.tracker.server=192....

    jp.gr.java_conf.ussiy.app.propedit.nl_6.0.0

    在Java开发中,properties文件是用来存储配置信息的关键组件,通常包含键值对,用于设置程序的环境、语言或特定功能的参数。这个插件版本为6.0.0,可能提供了增强的编辑功能和用户体验。 描述“亚洲,properties...

    TongWeb主配置文件tongweb.doc

    TongWeb,作为一款高性能、可扩展的企业级Java应用服务器,其主配置文件tongweb.doc在系统运维过程中扮演着至关重要的角色。这份文档将深入探讨TongWeb的配置文件管理、密码重置方法以及常见问题的解决方案,旨在...

    properties文件插件.rar

    "properties文件插件.rar"是一个专门针对Eclipse集成开发环境的扩展插件,它主要功能是增强对.properties配置文件的编辑和支持。这类文件通常用于存储应用程序的配置信息,如国际化(i18n)字符串、设置参数等。通过...

    jp.gr.java_conf.ussiy.app.propedit_5.3.3

    5. **多文件管理**:允许用户同时打开并编辑多个Properties文件,方便在多个配置文件间切换。 6. **版本控制集成**:对于开发团队来说,集成版本控制系统(如Git)的功能可以使协作变得更加流畅,可以查看历史变更...

    TongWeb7中conf.doc

    在TongWeb7中,`conf/tongweb.properties`是一个非常关键的配置文件,它用于定义和调整TongWeb服务器的行为,特别是在处理应用程序部署时遇到的各种问题。这个文件允许管理员根据实际需求定制TongWeb的运行环境,...

    tomcat及其配置文件

    Tomcat的核心配置文件之一是`server.xml`,这个文件位于Tomcat的`conf`目录下,它是Tomcat服务器的全局配置文件,定义了服务器的端口号、数据源、连接器、虚拟主机、Context等关键组件的设置。例如,你可以在这里...

    JNDI配置文件

    Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API,它为各种服务提供了一个统一...在实际操作中,只需将这个配置文件中的相应部分替换到你的Tomcat环境中,即可实现数据源的配置。

    jp.gr.java_conf.ussiy.app.propedit_5.0.0 for eclips

    在IT开发领域,尤其是在Java环境中,资源配置文件的管理是至关重要的。"jp.gr.java_conf.ussiy.app.propedit_5.0.0 for Eclipse"是一款专为Eclipse集成开发环境设计的资源文件编辑工具,它极大地提升了开发者处理...

    spring无法读取properties文件数据问题详解

    Spring 无法读取 properties ...Spring 无法读取 properties 文件数据问题可能是由于配置文件路径不正确、配置文件不存在或多个配置文件导致的。通过正确配置配置文件的路径和加载所有的配置文件,可以解决这些问题。

    xxl-conf分布式配置管理平台.rar

    最开始接触spring项目时,觉得*项目中.properties配置文件还是挺好用的,虽然在最开始实用期间经常还会报错${***}等配置文件找不到,后来还是解决了。但是在后来项目业务越来越清晰,业务拆解出多个项目,正式环境,...

Global site tag (gtag.js) - Google Analytics