`
rest001555
  • 浏览: 11812 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java.util.Properties类

阅读更多
之前再一次代码处理中用到这个,在一直想着总结这个类,今天无意中看到就直接搬过来了。以下是原文:



今天偶然碰到这个类,发现jdk中这些平时不大用到的类还挺好玩儿的,用起来也特别实在方便,随便写点记录下。

java.util.Properties是对properties这类配置文件的映射。支持key-value类型和xml类型两种。

key-value类型的配置文件大略长这样:

#测试环境配置:平台路径配置

jstrd_home=D:/TMS2006/webapp/tms2006/WEB-INF/

dbPort = localhost

databaseName = myd

dbUserName = root


#打头的是注释行,Properties会忽略注释。允许只有key没有value。

例如这样:

#测试环境配置:平台路径配置

jstrd_home=D:/TMS2006/webapp/tms2006/WEB-INF/

dbPort = 
databaseName


这种情况下,value会被set成null。

properties类实现了Map接口,所以很明显,他是用map来存储key-value数据,所以也注定存入数据是无序的,这个点需要注意。只能通过key的方式来get对应value。

针对key-value这种配置文件,是用load方法就能直接映射成map,非常简单好用。这种配置文件也是我们最重要碰到的配置文件,利用properties读取这类文件到内存一行代码就欧科,比自己解析强大多了,这点很赞。

读取配置文件的大略代码如下:

public class LoadSample {  
    public static void main(String args[]) throws Exception {  
      Properties prop = new Properties();  
      FileInputStream fis =   
        new FileInputStream("sample.properties");  
      prop.load(fis);  
      prop.list(System.out);  
      System.out.println("\nThe foo property: " +  
          prop.getProperty("foo"));  
    }  
}


第六行的load方法直接生产一个内存map,第九行就能get到对应的value了,简单快捷。

这里的第七行list方法是一个输出方法,这边是输出到console,也可以输出到文件等,就能实现内存写入配置文件了。

比如这样:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
<properties>  
<comment>Hi</comment>  
<entry key="foo">bar</entry>  
<entry key="fu">baz</entry>  
</properties>  


读取xml配置跟读取kv配置没差别,就是把load换成xml对应的loadFromXML方法,代码大略是这样:

public class LoadSampleXML {  
    public static void main(String args[]) throws Exception {  
      Properties prop = new Properties();  
      FileInputStream fis =  
        new FileInputStream("sampleprops.xml");  
      prop.loadFromXML(fis);  
      prop.list(System.out);  
      System.out.println("\nThe foo property: " +  
          prop.getProperty("foo"));  
    }  
}


把内存中的properties对象写入到xml文件中也和上面差不多,就是把list方法改成xml对应的storeToXML方法。

代码大略是这样:

import java.io.IOException;
import java.io.File;
import java.io.FileInputStream;
import java.io.PrintStream;
import java.util.Properties;

public class Test {
    public static void main(String[] args) {
        Properties p = new Properties();
        p.setProperty("id","dean");
        p.setProperty("password","123456");

        try{
            PrintStream fW = new PrintStream(new File("e:\\test1.xml"));
            p.storeToXML(fW,"test");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


总的来说,虽然jdk中存在date类这种特别奇葩的类,但是这些不常用的工具类还是很方便使用的,要能用起来,在用得到的时候还是很能提高效率的。比自己写解析方便快捷多了。




文章来自:http://ini.iteye.com/blog/2003595
分享到:
评论

相关推荐

    改进java.util.Properties类,让输出格式与输入格式保持不变.

    NULL 博文链接:https://whatjx.iteye.com/blog/1501510

    ExtendedProperties:这是一个简单的类,用于扩展 Java.util.Properties 类的功能

    这是一个简单的类,用于扩展 Java.util.Properties 类的功能。 它提供了主要围绕键前缀的增强功能,并添加了对将字符串数组存储为属性的支持。 使用前缀来标识数据可能有助于将单独但相关的项目存储在一起。 其中一...

    使用J2SE API读取Properties文件的六种方法

    使用java.util.Properties类的load()方法  示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));  Properties p = new Properties();  p.load(in);  2。使用java.util....

    Java_Properties_类读取配置文件信息

    在我们平时写程序的时候,有些参数是经常改变的,而这种改变不是我们预知的。比如说我们开发了一个操作数据库的模块,在开发的时候我们...JDK 内置的java.util.Properties 类为我们操作.properties 文件提供了便利。

    maven-properties-checker:Apache Maven 插件,用于检查和验证 java 属性文件 (java.util.Properties) Ref。 医生在

    Apache Maven 插件,用于检查 java 属性文件 (java.util.Properties) maven-properties-checker 是一个用于检查 java 属性的 Apache Maven 插件。 目的是在属性文件 (java.util.Properties) 中应用一些验证检查,以...

    log4j.properties

    log4j.properties ,commons-logging-1.2.jar,log4j-1.2.16.jar,三个文件一起组成一个完整的日志输出,Apache的Common Logging只是一个高层的日志框架,本身并没有实现真正的写日志能力,而是依赖其它的日志系统如...

    javamail发送邮件

    3.Session对象可以通过Session的getInstance(java.util.Properties props) 或getInstance(java.util.Properties props, Authenticator authenticator) Authenticator 可以理解为密码和用户名的验证器 或...

    spring-web-2.5.jar

    META-INF/MANIFEST.MF META-INF/license.txt org.springframework.remoting.caucho.BurlapClientInterceptor.class org.springframework....org/springframework/web/util/HtmlCharacterEntityReferences.properties

    适当:Tiny Clojure库,用于处理Java属性列表(java.util.Properties)

    适当:Tiny Clojure库,用于处理Java属性列表(java.util.Properties)

    spring为java.util.Properties类型的属性进行赋值过程解析

    主要介绍了spring为java.util.Properties类型的属性进行赋值过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    apron:高级属性—以更合理的方式读取和写入Java .properties文件

    该库的主要目标是与java.util.Properties类兼容。 不是API明智的(API完全不同),但是能够读取每个Java .properties文件并获得与java.util.Properties完全相同的键值对。 但是,Apron会维护属性文件中条目的顺序...

    java的property配置文件的用法.txt

    JDK 内置的 Java.util.Properties 类为我们操作 .properties 文件提供了便利。 一. .properties 文件的形式 # 以下为服务器、数据库信息 dbPort = localhost databaseName = mydb dbUserName = root ...

    基于spring boot 日志(logback)报错的解决方式

    记录一次报错解决方法: ...org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'logging.level' to java.util.Map&lt;java.lang.String, java.la

    Java集合多线程安全.docx

    import java.util.ArrayList; import java.util.List; import java.util.UUID; /** * @author: Raicho * @Description: * @program: mianshi * @create: 2020-07-17 15:32 **/ public class ...

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

    ava中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去...

    Java基础知识点总结.docx

    Java.util.Properties 103 介绍IO包中扩展功能的流对象 103 十七、 网络编程 110 网络基础之网络协议篇 111 UDP传输 124 TCP传输 126 十八、 反射技术 127 十九、 Ajax原理及实现步骤★★★★★ 130 Ajax概述 130 ...

    cmpp3.0_JAVA.rar

    3.方法入口:common.msg.util.MsgContainer sendWapPushMsg(String url,String desc,String cusMsisdn):发送web push短信; sendMsg(String msg,String cusMsisdn):发送SMS 4.“定时器.txt”记录的是长链接链路...

    java 读取properties配置文件内容乱码

    NULL 博文链接:https://liuzidong.iteye.com/blog/776637

    Java常用工具包Jodd.zip

    props 更强大的Java Properties替代jodd-email 更简单易用的e-mail收发jodd-upload 处理HTTP上传jodd-servlets 一些Servlet相关的工具类, 附带一套漂亮的JSP标签库jodd-http  轻巧的HTTP客户端小型框架模块有:...

    i18n Tools helper

    import java.util.regex.Matcher; import java.util.regex.Pattern; /** * . &lt;p/&gt; @author George Wei */ public class I18nTool { private static final String TEMP_RES_ENCODING = "gbk"; private static ...

Global site tag (gtag.js) - Google Analytics