知识大全 enoeht的Java源码系列之处理配置文件

Posted

篇首语:生活可以五颜六色,但绝不能乱七八糟。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 enoeht的Java源码系列之处理配置文件相关的知识,希望对你有一定的参考价值。

enoeht的Java源码系列之处理配置文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  我们常常会在程序中用到这样的配置文件     Listener = svr sample SampleListenerImpl    ServerAddress =     ListeningPort =     ListenerTimeout =     StatelessService = true    LogLevel = ALL    LogPath = server log    在这里提供了一个处理这种配置文件的类的源代码     package kyle util;    import java io *;    import java util *;    //加载配置文件 并提供从配置文件中读取各种类型的值的方法    public class Profile        protected Properties applicationProps;    protected String m_configurationFilename = null;    private boolean m_debug = false;    public Profile( boolean debug)        this();    m_debug = debug;        public Profile()        this(System getProperty( MainConfigFile Server cfg ));        public Profile(String configurationFilename)        this m_configurationFilename = configurationFilename;    loadCfg(configurationFilename);        public void loadConfig(String configurationFilename)        if( configurationFilename == null )        System exit( );        try     applicationProps = new Properties();    FileInputStream in = new FileInputStream(configurationFilename);    applicationProps load(in);    in close();        catch( IOException ie)        System exit( );            public void loadConfig()        loadConfig( m_configurationFilename );        public void saveConfig()        try        FileOutputStream out = new FileOutputStream(m_configurationFilename);    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out _ ));    synchronized (applicationProps)        Iterator iterator = new TreeSet(applicationProps keySet()erator();    while(iterator hasNext())        String key = (String)iterator next();    writer write(key + = + applicationProps getProperty(key));    writer newLine();            writer close();    out close();    catch(IOException ie)        System out println(ie toString());            public void showConfig()        applicationProps list(System out);        public Properties getProperty()        return applicationProps;        String getString(String Section String key String Default)        return getString( key Default);        public String getString(String key String Default)        String rVal = applicationProps getProperty(key Default);    return rVal == null ? rVal : rVal trim();        public String getString(String key)        String rVal = applicationProps getProperty(key);    return rVal == null ? rVal : rVal trim();        public boolean getBoolean(String key boolean Default)        String rVal = getString(key);    //  if (rVal == null) return Default;    if ( true equalsIgnoreCase(rVal)) return true;    if ( false equalsIgnoreCase(rVal)) return false;    return Default;        public int getInt(String key int Default)        try    return getInt(key);    catch(Exception e)    applicationProps setProperty(key String valueOf(Default));    return Default;            protected int getInt(String key) throws NumberFormatException        String rVal = getString(key);    return Integer parseInt(rVal);        public String getConfigurationFilename()        return m_configurationFilename;        private void loadCfg(String configurationFilename)        if( configurationFilename == null )        System out println( Assigned a null configuration file Default setting used );        try        applicationProps = new Properties();    FileInputStream in = new FileInputStream(configurationFilename);    applicationProps load(in);    in close();        catch( IOException ioe)        System out println( Loading configuration from file + configurationFilename + failed );    System out println( Default setting will be used );                package kyle util;    import *;    //调用父类加载配置文件和读取数据 按照配置文件的中的key值读取其value     public class GenProfile extends Profile        public GenProfile()        super();    buildCachedCrypt();        public GenProfile( String cfgFileName )        super( cfgFileName );    buildCachedCrypt();        public String getListenerImpl()        return getString( Listener svr sample SampleListenerImpl );        public InetAddress getServerAddress()        try        String svrAddr = getString( ServerAddress null);    if ( svrAddr == null ) return null;    return InetAddress getByName( svrAddr );        catch( UnknownHostException uhe)        (uhe);        return null;        public int getListenAt()        return getInt( ListeningPort );        public int getTimeout()        return getInt( ListenerTimeout );        public boolean statelessService()        return getBoolean( StatelessService true );        public String getLogLevel()        return getString( LogLevel CONFIG );        public String getLogPath()        return getString( LogPath server log );             使用方法   String cfgFile = server cfg ;    GenProfile m_env = new GenProfile( cfgFile );    这样在程序中就可以使用例如m_env getServerAddress()等方法取得配置文件的相应内容了 cha138/Article/program/Java/hx/201311/26782

相关参考

知识大全 java源码分析之LinkedHashMap

java源码分析之LinkedHashMap  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 java源码分析之LinkedList

java源码分析之LinkedList  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 Java 中对文件的读写操作之比较

Java中对文件的读写操作之比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java对文件进

知识大全 Java多线程系列--“JUC原子类”05之 AtomicLongFieldUpdater原子类

Java多线程系列--“JUC原子类”05之AtomicLongFieldUpdater原子类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整

知识大全 ASPX文件上传限制类型实例源码

ASPX文件上传限制类型实例源码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs

知识大全 Java中SOCKET通讯源码

Java中SOCKET通讯源码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  //ServeOn

知识大全 JSP页面文件目录树源码(递归算法)

JSP页面文件目录树源码(递归算法)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  <%@

知识大全 Oracle 9i新特性研究系列之四 -- 延续性初始化参数文件

Oracle9i新特性研究系列之四--延续性初始化参数文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 java.util.HashMap源码要点浅析

java.util.HashMap源码要点浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  散

知识大全 源码实现实时获取Java堆内存信息

源码实现实时获取Java堆内存信息  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果大家有遇到