java加载并遍历properties文件

本文介绍了一个Java实用工具类GlobalConfigUtil,该类用于从sftpMail.properties配置文件中加载属性并将其转换为Map对象,便于应用程序使用。此外,还提供了一个测试方法展示如何读取特定配置项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.jb.efile.util;

import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class GlobalConfigUtil {

	private static final Log log = LogFactory.getLog(GlobalConfigUtil.class);

	/**
	 * 获取Properties对象
	 * @return
	 */
	public static Properties getGlobalConfig() {
		Properties prop = new Properties();
		// 这里不要用ClassLoader.getSystemResourcAsStream()来获取
		// 因为此方法是调用jvm自带的classLoader加载才文件
		// 而如果是web项目,则类加载器可能是tomcat下的webAppClassLoader
		InputStream is = GlobalConfigUtil.class.getClassLoader()
				.getResourceAsStream("sftpMail.properties");
		if (is == null) {
			is = GlobalConfigUtil.class
					.getResourceAsStream("/sftpMail.properties");
		}
		try {
			prop.load(is);
		} catch (IOException e) {
			log.error("配置文件读取错误!", e);
		}
		return prop;
	}

	/**
	 * 将properties中的信息封装到map中
	 * @return
	 */
	public static Map<String, String> getConfigMap() {
		Map<String, String> configMap = new HashMap<String, String>();
		Properties prop = getGlobalConfig();
		Set<Entry<Object, Object>> set = prop.entrySet();
		Iterator<Entry<Object, Object>> entry = set.iterator();
		while (entry.hasNext()) {
			Entry<Object, Object> map = entry.next();
			configMap.put(map.getKey().toString(), map.getValue().toString());
		}
		return configMap;
	}

	/**
	 * 测试
	 * @param args
	 */
	public static void main(String[] args) {
		Properties prop = getGlobalConfig();
		Set<Entry<Object, Object>> set = prop.entrySet();
		Iterator<Entry<Object, Object>> entry = set.iterator();
		while (entry.hasNext()) {
			Entry<Object, Object> map = entry.next();
			System.out.println(map);
			System.out.println(map.getKey() + ": " + map.getValue());
		}
		System.out.println(prop.getProperty("curProvince"));
		System.out.println(prop.getProperty("system"));
		System.out.println(prop.getProperty("cn"));
		/*
		 * try { // 解决中文乱码问题 String cn = new String(prop.getProperty("cn")
		 * .getBytes("ISO-8859-1"), "UTF-8"); System.out.println(cn); } catch
		 * (UnsupportedEncodingException e) { // TODO Auto-generated catch block
		 * e.printStackTrace(); }
		 */
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值