使用单例模式读取properties文件

配置文件里的内容

\u96F6=0
\u58F9=1
\u8D30=2
\u53C1=3
\u8086=4
\u4F0D=5
\u9646=6
\u67D2=7
\u634C=8
\u7396=9
\u4E00=1
\u4E8C=2
\u4E09=3
\u56DB=4
\u4E94=5
\u516D=6
\u4E03=7
\u516B=8
\u4E5D=9
\u2460=1
\u2461=2
\u2462=3
\u2463=4
\u2464=5
\u2465=6
\u2466=7
\u2467=8
\u2468=9
\u3007=0
\u2160=1
\u2161=2
\u2162=3
\u2163=4
\u2164=5
\u2165=6
\u2166=7
\u2167=8
\u2168=9
\u6263\u6263=qq
\u6263q=qq
\u53E3\u53E3=qq
\u53E3=q



这是一个使用懒汉式单例模式来实现配置文件读取和修改,将配置文件的内容存到了一个Map中

package test;
import java.util.HashMap;
import java.util.Map;
import java.io.*;
import java.util.Properties;
import java.util.Enumeration;
/*
 * 静态内部类既能保证线程安全也能保证懒加载
 * 单例模式采用懒汉式方法
 */
//静态内部类实现单例模式,读取配置文件的内容到Map中
public class PropertiesUtil {
	private static Map<String,String> pro=new HashMap<String,String>();
//  静态内部类
	private static class propertiesInstance
    {
    	private static final PropertiesUtil prop =new PropertiesUtil();
    
    }
//	默认加载
    private PropertiesUtil()
    {
    	pro =readProperties();
    }
//  得到工具类的实例
    private static PropertiesUtil getInstance()
    {
    	return propertiesInstance.prop;
    }
    public Map<String,String> getMap()
    {
    	return pro;
    }
    private static Map<String,String> readProperties()
    {
    	Properties prop = new Properties();
    	try
    	{
    		InputStream in =Class.forName("test.PropertiesUtil").getClassLoader().getResourceAsStream("TipWordChange.properties");
    		//InputStream in =PropertiesUtil.class.getClassLoader().getResourceAsStream("TipWordChange.properties");
    		prop.load(in);
    		Enumeration en =prop.propertyNames();
    		while(en.hasMoreElements())
    		{
    			String key =(String) en.nextElement();
    			String value =prop.getProperty(key);
    			pro.put(key, value);
    		}
    		
    	}
    	catch(Exception e)
    	{
    		e.printStackTrace();
    	}
    	return pro;
    }
    public static void main(String[] args)
    {
    	PropertiesUtil pro1=PropertiesUtil.getInstance();
    	PropertiesUtil pro2=PropertiesUtil.getInstance();
    	String testString ="零Ⅲ壹壹872陆7844";
    	for(String key:pro1.getMap().keySet())
    	{
    		if(testString.contains(key))
    		{
    			testString = testString.replace(key, pro1.getMap().get(key));
    		}
    	}
    	System.out.println(testString);
    }
}



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值