知识大全 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 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
java源码分析之LinkedList 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
Java中对文件的读写操作之比较 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java对文件进
知识大全 Java多线程系列--“JUC原子类”05之 AtomicLongFieldUpdater原子类
Java多线程系列--“JUC原子类”05之AtomicLongFieldUpdater原子类 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整
ASPX文件上传限制类型实例源码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
Java中SOCKET通讯源码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! //ServeOn
JSP页面文件目录树源码(递归算法) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! <%@
知识大全 Oracle 9i新特性研究系列之四 -- 延续性初始化参数文件
Oracle9i新特性研究系列之四--延续性初始化参数文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
java.util.HashMap源码要点浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 散
源码实现实时获取Java堆内存信息 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如果大家有遇到