您现在的位置是:首页
>
T/T enoeht的Java源码系列之处理配置文件
e oeht的Java源码系列之处理配置文件 我们常常会在程序中用到这样的配置文件 Li te er = vr am le Sam leLi te erIm l ServerAddr
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
很赞哦! (1069)