使用单例模式读取properties文件

来源:互联网 发布:手机内录软件 编辑:程序博客网 时间:2024/05/17 07:23

配置文件里的内容

\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);    }}


原创粉丝点击