5分钟教你学会Java properties

以前年轻的时候,总喜欢在代码中把参数的值写死,改一遍跑一遍,可移植性太糟糕了。自从用了Properties类之后,省事了,代码也规范了一点了。
也就是将常用的,且经常需要修改的参数放置在xx.properties文件中,利用Java中提供的Properties类读取文件中的参数值,从而避免多次在代码中修改参数的值,一劳永逸。

Properties其实是继承自HashTable,所以用起来也很简单,提供的操作主要有:

load(inputStream) : 加载配置文件
store(outputStream,comment):将新生成的Properties对象写出到文件中去,comment是添加说明性的文字;
getProperty(name):获取某个属性的值;
setProperty(name,value):设置某个属性的值;这个属性可以事先不存在
putProperty(name,value):新增一个属性值

  

package PropertiesTest;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

/**
 *
 * @author wangjj
 *
 *         Jan 7, 2015
 */
public class TestPropertiesClass {

     public static Properties properties;

     public TestPropertiesClass(String propertiesFile) throws Exception {

           properties = new Properties();

           // properties文件的格式是: #comment,argument=value
          FileInputStream input = new FileInputStream(new File(propertiesFile));

           // 从input stream中读取数据
           properties.load(input);
     }

     /**
      * 测试properties中提供的方法:get,set,store,put
      *
      * @throws IOException
      * @throws FileNotFoundException
      */
     public void run(String outputProperty) throws FileNotFoundException,
              IOException {

           // read properties
          String firstname = properties.getProperty("firstname" );
          String hobby = properties.getProperty("hobby" );
          System. out.println("firstName: " + firstname);
          System. out.println("hobby:" + hobby);

           // set existed property
           properties.setProperty("firstname" , "jing" );
          firstname = properties.getProperty("firstname" );
          System. out.println("changed firstName:" + firstname);

           // set non-existed property
           properties.setProperty("hello" , "world" );
          System. out.println("hello :" + properties.getProperty("hello" ));

           // put non-existed property
           properties.put("newProperty" , "newValue" );
          System. out.println("New property :"
                   + properties.getProperty("newProperty" ));

           properties.store(new FileOutputStream(new File(outputProperty)),
                    "outputProperty");
     }

     public static void main(String[] args) throws Exception {
          String properFile = "conf/test.properties";
          TestPropertiesClass testProperties = new TestPropertiesClass(properFile);
          String outputProperty = "conf/testNew.properties" ;
          testProperties.run(outputProperty);
     }
}

  

时间: 2024-12-06 18:33:26

5分钟教你学会Java properties的相关文章

5分钟教你学会JavaScript正则表达式

正则表达式在实际开发过程中和技术面试过程中的重要性不言而喻,本文仅仅只是教你如何在几分钟之类学会正则表达式,对于它的原理及运行机制不做介绍. 第一:什么是正则 正则表达式是一种用来描述一定数量文本的模式,用来匹配相同规范样式的文本.在JavaScript中用RegExp对象表示正则表达式( 即Regular Eexpression),它是对字符串执行模式匹配的强大工具.我们可以参看W3C所给的说明. 第二:创建一个正则表达式 在JavaScript中创建正则表达式,有2种方式,隐式和显式创建. 

20分钟教你学会熟练使用ansible

运维自动化之ansible的安装与使用 随着服务器数量的增长,我们需要一个批量工具去提高工作效率,之前用的是puppet,ansible的简单,适用让我眼前一亮,决定写一篇ansible从安装到基本配置的文档供新手参阅. 一.安装1.安装第三方epel源centos 6的epel    [[email protected] ~]# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm    [

十分钟教你学会zookeeper安装和集群搭建(伪集群 )

1. zookeeper介绍 ZooKeeper是一个为分布式应用所设计的分布的.开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务.ZooKeeper本身可以以Standalone模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性. ZooKeeper是作为分布式协调服务,是不

1分钟教你学会如何使用远程桌面命令?

1.打开电脑,按下Win+R键打开运行命令; 2.输入远程连接命令,mstsc,这样就可以快速连接 3.输入正确的用户名和密码,连接远程服务器 4.下图是本地显示远程桌面的连接窗口 5.连接不成功的原因: 服务器用户名密码错误,服务器用户名密码都有大小写,重新输入一次即可 6.连接不成功的原因: 服务器过期,由于服务器大部分都是租用的,一般都会到时间要续费的 7.连接不成功的原因: 服务器重新装了系统,服务器重装系统后,远程登录密码大部分会改变,因此也会造成连接不成功 8.其它原因: 服务器受到

5分钟教你学会Django系统错误监控

一.监控所有的request请求 如何实现系统监控,自动发送错误日志的邮件呢? 只需配置配置settings文件即可. 1.设置发送邮件配置信息 邮件会发送到ADMINS设定的邮件列表中. SERVER_EMAIL ='[email protected]' DEFAULT_FROM_EMAIL ='[email protected]' ADMINS = (('receiver','[email protected]'),) EMAIL_HOST ='smtp.exmail.qq.com' EMA

【小白学Java for循环】3分钟学会Java的for循环,让看懂for循环嵌套再不是难事

目录 一.单个for循环介绍 二.for循环嵌套 听讲时能听懂的for循环为什么一做题就晕菜?一个for循环还勉强能看懂,但为什么一看到双重for循环脑子里就感觉脑子全是浆糊? 如果有上述问题那么就继续看这篇文章吧~让你3分钟学会Java的for循环,让看懂for循环嵌套再不是难事! 一.单个for循环介绍 1.语法格式: for(①初始化部分;②循环条件部分;④迭代部分){ ? ③循环体部分 } 例子: 2.执行过程: ①→②→③→④→②→③→④→②→③→④→--→② 3.说明: ②循环条件部

手把手教你学会 Emacs 定制

Table of Contents 1 前言 2 配置Emacs 2.1 设置界面 2.2 全屏以及最大化 2.3 设置周边 2.4 显示时间设置 2.5 设置日历 2.6 设置符合个人的操作习惯 2.7 其它小功能 2.8 绑定键设置 2.9 C/C++/JAVA编程模式 1 前言 说实话,emacs的迷人之处就是具有非常强的自主配置能力,你可以完全根据自己的个人习惯来设置它.就像我在下面罗列的那些lisp代码,你可以 尽情的改变F1,F2..等等键所对应的功能,也可以在编辑C/C++/jav

几分钟教你做个原创视频,赚钱引流两不误

现在原创视频不可谓不火.未来几年,短视频创业.营销.引流.都蕴藏着巨大的市场机会.分享一些小套路.赚钱,引流必备小技巧. 举牌照大家都见过,前段时间非洲儿童的举牌照可谓火了一把,有些人靠这个赚的盆钵满盈. 但有些明星.美女的举牌照,虽然大家都见过,一般微商用的比较多,不知道的以为是某某大品牌微商代理真的把人请过来做广告. 这种图片微商.广告.成交文案.装逼等各个领域都可以用的到. 制作方法: 网上有许多的PSD源码模板,大家去下载即可,也可以到某宝去购买.然后用Photoshop软件直接修改文字

本文来自作者?余博伦?在?GiCa?上分享 「韭菜种四招教你学会甄别

Docker默认空间大小分为两个,一个是池空间大小,另一个是容器空间大小.池空间大小默认为:100G容器空间大小默认为是:10G所以修改空间大小也分为两个:这 如今已经大获市场成功的<王者荣耀>一直是业内各方关注的对象,而我们也知道这款产品在成为国民级游戏之 如果你有了还要创建密码,gi会提示你是否需要覆盖(y n)?Y:确认????????N:取消 如图:生成如上图所示标识生成成功了.其存放路径为 在我理解,面向对象是向现实世界模型的自然延伸,这是一种"万物皆对象"的编程