您现在的位置是:首页 >

T/T enoeht的Java源码系列之处理配置文件

火烧 2022-02-24 01:12:08 1069
e oeht的Java源码系列之处理配置文件   我们常常会在程序中用到这样的配置文件     Li te er = vr am le Sam leLi te erIm l    ServerAddr

enoeht的Java源码系列之处理配置文件  

T/T enoeht的Java源码系列之处理配置文件
  我们常常会在程序中用到这样的配置文件     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()等方法取得配置文件的相应内容了 lishixinzhi/Article/program/Java/hx/201311/26782  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码