配置文件.properties的使用

.properties是以键值对的形式保存数据,比文件保存更方便读取,而且不用修改源代码,不用重新编译源文件。

多用于保存配置数据,如jndi,cookie属性,上传下载目录等等。

另外,保存特殊化的内容十分有用,比如河北代码需要前台显示“河北”字样,云南代码需要显示“云南”字样,用properties就不用修改源码了。只需要河北写一个配置文件,云南写一个配置文件。

1、写好配置文件,在buildingpath中设置为源。

2、写读取配置文件的静态函数。(如ConfigConstants.java)

package com.wondersgroup.core.constant;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.Enumeration;

import java.util.HashMap;

import java.util.Map;

import java.util.Properties;

import org.apache.commons.lang.StringUtils;

public class ConfigConstants {

/** 单体实例 */

private static ConfigConstants instance;

/** 配置属性 */

private Map<String, String> config = new HashMap<String, String>();

/**

* 私有构造器

*/

private ConfigConstants() {

}

/**

* @return 返回 instance。

*/

public static ConfigConstants getInstance() {

if (instance == null) {

instance = new ConfigConstants();

}

return instance;

}

/**

* 获取配置属性

*

* @param key

* @return

*/

public String get(String key) {

return config.get(key);

}

/**

* 初始化配置属性

*

* @throws IOException

*/

public void init() throws IOException {

// 读取默认配置文件

this.read("/config.properties");

// 扩展配置文件路径配置项名称

String ext = "config.ext";

// 支持多重继承,循环读取配置

while (StringUtils.isNotBlank(this.config.get(ext))) {

// 读取扩展配置文件路径

String path = this.config.get(ext);

// 清除配置属性中已读取的扩展配置文件路径

this.config.remove(ext);

// 读取扩展配置文件

this.read(path);

}

}

/**

* 读取配置文件内容并将配置加载至内存

*

* @param conf 配置文件路径

* @throws IOException

*/

private void read(String conf) throws IOException {

if (StringUtils.isNotBlank(conf)) {

InputStream is = null;

Properties props = new Properties();

try {

is = ConfigConstants.class.getResourceAsStream(conf);

BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));

props.load(br);

Enumeration<?> propKeys = props.propertyNames();

while (propKeys.hasMoreElements()) {

String propName = (String) propKeys.nextElement();

String propValue = props.getProperty(propName);

this.config.put(propName, propValue);

}

} finally {

if (is != null) {

is.close();

}

}

}

}

}

3、这时配置文件中的内容已经以map形式放在内存池中,之后程序中可以用ConfigConstants.getInstance().get("key")来取得相应value值。

附注:扩展配置文件的使用,在properties中有此键值“config.ext”(在ConfigConstants.java中)即可,比如:

config.ext /config-yn.properties

来自为知笔记(Wiz)

时间: 2024-11-10 20:33:18

配置文件.properties的使用的相关文章

CP30--使用配置文件properties进行连接池对象DataSource的创建

使用配置文件properties进行连接池对象DataSource的创建 如下: 1 public class CP30Util { 2 private static DataSource dataSource; 3 //使用静态代码块,使驱动在调用工具类时就被加载,且只加载一次 4 static { 5 try { 6 //使用工厂方法"Using the DataSouces factory class"创建DataSource连接池对象 7 dataSource= DataSou

复习课程jdbc:使用配置文件properties进行连接数据库,数据库存取图片,批处理,时间戳,事物回滚等等

使用配置文件properties进行连接数据库 首先创建一个file自定义文件名,但是后缀名必须改为.properties(不分大小写):如config.properties: 然后双击config.properties进行编辑:此文件数据是根据键值对来存储的:我们可以把连接数据库的一些连接字符串存储在此文件里:然后用的时候直接读配置文件,到时候更换的时候方便移植和修改. name                                                          

操作配置文件Properties

操作配置文件Properties Table of Contents 1 定义 2 读取配置值 3 修改和保存配置 4 注意 1 定义 csharp中在Settings.settings文件中定义配置字段,把作用范围定义为User,则运行时可更 改,Applicatiion则运行时不可更改,可以使用数据网格视图,很方便. 2 读取配置值 // FieldName是你定义的字段 text1.text = Properties.Settings.Default.FieldName; 3 修改和保存配

对Java配置文件Properties的读取、写入与更新操作

http://breezylee.iteye.com/blog/1340868 对Java配置文件Properties的读取.写入与更新操作 博客分类: javase properties 对Java配置文件Properties的读取.写入与更新操作注:当前项目路径是String filepath=System.getProperty("user.dir"); 对下面的程序很有用... /*** 实现对Java配置文件Properties的读取.写入与更新操作*/package tes

Java配置文件Properties的读取、写入与更新操作

/** * 实现对Java配置文件Properties的读取.写入与更新操作 */ package test; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream;

Java 读取配置文件 Properties

String filePath="src/cn/ac/iscas/pebble/ufe/conf/id.properties"; InputStream in = new BufferedInputStream(new FileInputStream(filePath)); int i = 0; Properties p = new Properties(); p.load(in); p.getProperty(key); 还有一个方式如下: public class ConfigUt

Java配置文件Properties加载

import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * Created by fubin on 2017/1/12 0012. * * * 配置文件加载与访问 * * */ public class PropertiesUtils { private static Properties PRO = new Properties(); static { InputStrea

关于Java配置文件properties的学习

在Java早期的开发中,常用*.properties文件存储一些配置信息.其文件中的信息主要是以key=value的方式进行存储,在早期受到广泛的应用.而后随着xml使用的广泛,其位置渐渐被取代,不过,目前仍有一些框架如log4J在使用它.最近在弄自己的小玩意儿的时候也用到了它,顺便加深了一下了解,在此分享. Java在对*.properties文件进行操作的时候,实际上是通过IO对文档进行逐行的扫描,然后将文中非注释的部分存放在一个properties对象中.Properties 实际上是继承

加载配置文件.properties,及面向接口编程的DaoFactory

1 package cn.itcast.usermng.dao; 2 3 import java.io.InputStream; 4 import java.util.Properties; 5 6 /** 7 * 通过配置文件得到dao实现类的名称! 8 * 通过类名称,完成创建类对象!(反射完成的!) 9 * @author cxf 10 * 11 */ 12 public class DaoFactory { 13 private static Properties props = nul

java读取配置文件(properties)的时候,unicode码转utf-8

有时我们在读取properties结尾的配置文件的时候,如果配置文件中有中文,那么我们读取到的是unicode码的中文,需要我们在转换一下,代码如下 /** * 将配置文件中的Unicode 转 utf-8 汉字 * @param 原始字符串 * @return 转换后的格式的字符串 */ public static String unicodeToChina(String str) { Charset set = Charset.forName("UTF-16"); Pattern