`

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属性文件jp.gr.java_conf.ussiy.app.propedit_5.3.3.jar, 有实现步骤及操作中文例子

    配置文件读取

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

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

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

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

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

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

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

    java配置文件 beta v1.0

    java配置文件助手(能读写ini,conf,txt,properties等任意格式的配置文件),文件内容支持自定义标签及语法.如需源代码,请联系我:mak0000@msn.com whsvc

    JAVA 1.6实现的本地文件搜索系统-支持office pdf autocad等格式

    java 文件检索 搜索 word excel ppt xls pdf autocad http操作控制 windows 2003 search index不好用,自娱自乐写了一个。 只提供使用,源码出售另请联系 可用于毕业设计 在安装前配置 searchFileService.conf ...

    openConf:本地配置注解获取

    conf 本地配置注解获取 说明 version 1.3 ...新增了自定义配置文件,使用注解ConfSource(""),指定配置文件路径,默认为classpath:configer.properties version 1.0 本项目主要用于帮助开发者可以更快更方便

    Java Web版SVN 远程配置管理工具

    或者通过Tomcat下的conf文件夹中的配置文件来配置虚拟目录访问。 2、配置SVN仓库地址:将解压后的config.Properties文件打开修改对应的配置项: fileDir=路径为SVN服务器的仓库路径 authz=权限配置文件名 passwd=...

    java+mysql开发适合适合中小微企业的客服系统完整业务的客服系统源码.zip

    支持语音、截图、文本、文件、图片、表情等多媒体类型,方便聊天 支持不同的网站访问不同的坐席技能组,提供针对性的服务 系统自动识别来访客户,区分身份,实现针对性服务 支持高等级用户优先接入,实现提供VIP优先...

    借助OpenOffice、FlexPaper和SWFTools 实现仿百度文库的功能

    本工程为MyEclipse中的java web...步骤:将“安装的软件”中的软件转到本地计算机,然后将其安装的路径在conf.properties文件配置一下(如何配置请参见上面对于conf.properties文件的说明)即可运行该java web工程。

    Linux tomcat下catalina.out日志文件分割

    tomcat支持采用log4j进行日志记录,配置方法如下: 1.更新最新的tomcat_juli.jar包到./bin/目录下; 2.拷贝log4j.jar,lo4j.properties到./lib目录下; 3.删除./conf/logging.properties 4.重启 log4j配置样本 实例...

    TongWeb7中conf.doc

    TongWeb常见问题处理,用于运维的问题处理,便于解决应用部署时遇到的各种问题..

    OA-Seeyou:笔记

    OA-Seeyou note致远OA数据库配置文件致远OA数据库配置文件:/opt/Seeyon/A8/base/conf/datasourceCtp.propertiesctpDataSource.minCount=50mysql.backup.path=db.hibernateDialect=org.hibernate.dialect....

    问卷调查系统、表单系统.zip

    配置文件地址 conf/application.properties #database settings jdbc.url=jdbc:mysql://localhost:3306/dwsurvey?useUnicode=true&characterEncoding=utf8 jdbc.username=root jdbc.password=123456,. 分别修改``...

    开源系统:系统管家Pc版 java

    具体的备份参数在 conf/properties_2005_filesbackup.properties 文件中配置。 不用你每天备份。而且是增量的,你可以设置隔几天,如7天一次全备份,中间的时间采用只备份修改的,减少空间占用。 全备份的文件名...

    WebsiteAutoTest-V1.0-源码

    自定义一个 配置文件读取器,读取并解析配置信息。 3.发送请求并保存结果 使用Apache HttpClient执行请求,然后保存每个请求的执行结果到 集合中。 4.生成报表 ApachePOI 生成Excel2007(.xlsx)报表,每...

    最好用的开源问卷调查系统、表单系统.zip

    配置文件地址 conf/application.properties #database settings jdbc.url=jdbc:mysql://localhost:3306/dwsurvey?useUnicode=true&characterEncoding=utf8 jdbc.username=root jdbc.password=123456,. 分别修改``...

    maven-mvnd提供更快的Maven构建

    编辑工具目录中的conf/mvnd.properties配置文件,修改maven.settings属性值为你本地使用的maven配置,这样可以复用maven配置,不用再重新下载一堆儿jar包了 注意使用linux下的路径分隔符/; 配置mvnd可执行文件到...

    C:\Users\issuser\Desktop\nexus-win版和unix版本组合.zip

    maven 搭建nexus私服仓库,解压压缩文件放到D盘下,配置环境量,修改配置文件中D:\nexus-2.12.0-01-bundle\nexus-2.12.0-01\bin\jsw\conf\wrapper.conf中的wrapper.java.command=D:\application\java\1.8\jdk\bin\...

Global site tag (gtag.js) - Google Analytics