ReadConfig与WriteConfig用法实例化分析

博客介绍了WriteConfig和ReadConfig两个命名。WriteConfig用于向脚本唯一配置文件重写键值,即使脚本停止、手机关闭,下次启动仍保留记录;ReadConfig用于从该配置文件读取键值,可设置默认值,若读取值不存在则返回默认值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

命名名称:WriteConfig

命名功能:向配置文件重写一个键值,这里的配置文件默认写入该脚本唯一配置文件,当脚本停止,手机关闭,下次启动是读取仍然是上传记录的信息。

命名参数:

参数1:字符类型,键值

参数2:字符类型,写入内容

 

命名名称:ReadConfig

命名功能:从配置文件重读去一个键值,这里的配置文件默认写入该脚本唯一配置文件,当脚本停止,手机关闭,下次启动时读取仍然是上次记录的信息

命名参数

参数1:(比填)字符类型,键值

参数2:(选填)字符类型,默认值(如果读取值不存在,返回默认值)

/**
 * 读取配置文件
 * @author 微软中国
 *
 */
public class ReadConfig {
 
	private static Properties p;
	
	public static String getPath(String key){
		p = new Properties();
		InputStream in = ReadConfig.class.getClassLoader().getResourceAsStream("config.properties");
		String path;
		try {
			p.load(in);
			path = p.getProperty(key);
		} catch (IOException e) {
			e.printStackTrace();
			throw new RuntimeException("配置文件读取失败...");
		}finally{
			if(in != null){
				try {
					in.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return path;
	}
}
using Nebula.EAP.Core.Scenario.Utilities; using NHibernate; using NHibernate.Cfg; using System; namespace Nebula.EAP.Core.Scenario.Dao { public class ReadWriteSessionManager : IDisposable { private static ISessionFactory _readSessionFactory; private static ISessionFactory _writeSessionFactory; private static readonly object facLock = new object(); private static readonly object sessionLock = new object(); public ReadWriteSessionManager() { //创建ISessionFactory _readSessionFactory = GetReadSessionFactory(); _writeSessionFactory = GetWriteSessionFactory(); } /// <summary> /// 读操作工厂 /// </summary> /// <returns></returns> private ISessionFactory GetReadSessionFactory() { lock (facLock) { if (_readSessionFactory == null) { var writeConfig = new Configuration(); writeConfig.Configure(); writeConfig.Properties["connection.connection_string"] = GetReadConnectionString(); _readSessionFactory = writeConfig.BuildSessionFactory(); return _readSessionFactory; } return _readSessionFactory; } } /// <summary> /// 写操作工厂 /// </summary> /// <returns></returns> private ISessionFactory GetWriteSessionFactory() { lock (facLock) { if (_writeSessionFactory == null) { var writeConfig = new Configuration(); writeConfig.Configure(); writeConfig.Properties["connection.connection_string"] = GetWriteConnectionString(); _writeSessionFactory = writeConfig.BuildSessionFactory(); return _writeSessionFactory; } return _writeSessionFactory; } } public ISession OpenReadSession() { return _readSessionFactory.OpenSession(); } public ISession OpenWriteSession() { return _writeSessionFactory.OpenSession(); } public Se OpenReadWriteSession() { return new Se(_readSessionFactory.OpenSession(),_writeSessionFactory.OpenSession()); } private string GetReadConnectionString() { return ValueConvertor.connectionStringList["EAP_ORA_READ"].ToString(); } private string GetWriteConnectionString() { return ValueConvertor.connectionStringList["EAP_ORA_WRITE"].ToString(); } public void Dispose() { _readSessionFactory.Dispose(); _writeSessionFactory.Dispose(); } } public class Se : IDisposable { public ISession readSession; public ISession writeSession; public Se(ISession readSession,ISession writeSession) { this.readSession = readSession; this.writeSession = writeSession; } public void Dispose() { readSession.Dispose(); writeSession.Dispose(); } } } 请分析并优化这部分内容,并给出优化后的完整代码
最新发布
06-06
package com.hexiang.utils; import java.io.File; import java.io.FileInputStream; import java.util.Properties; public class ReadConfigation{ /** * 属性文件全名 */ private static final String PFILE ="Config.properties"; /** * 对应于属性文件的文件对象变量 */ private File m_file = null; /** * 属性文件的最后修改日期 */ private long m_lastModifiedTime = 0; /** * 属性文件所对应的属性对象变量 */ private Properties m_props = null; /** * 本类可能存在的惟一的一个实例 */ private static ReadConfigation m_instance =new ReadConfigation(); /** * 私有的构造子,用以保证外界无法直接实例化 */ private ReadConfigation() { m_file = new File(PFILE); m_lastModifiedTime = m_file.lastModified(); if(m_lastModifiedTime == 0){ System.err.println(PFILE +" file does not exist!"); } m_props = new Properties(); try { m_props.load(new FileInputStream(PFILE)); } catch(Exception e) { e.printStackTrace(); } } /** * 静态工厂方法 * @return 返还ReadConfigation 类的单一实例 */ synchronized public static ReadConfigation getInstance() { return m_instance; } /** * 读取一特定的属性项 * * @param name 属性项的项名 * @param defaultVal 属性项的默认值 * @return 属性项的值(如此项存在), 默认值(如此项不存在) */ public String getConfigItem(String name,String defaultVal) { long newTime = m_file.lastModified(); // 检查属性文件是否被其他程序 // 如果是,重新读取此文件 if(newTime == 0) { // 属性文件不存在 if(m_lastModifiedTime == 0){ System.err.println(PFILE+ " file does not exist!"); }else{ System.err.println(PFILE+ " file was deleted!!"); } return defaultVal; }else if(newTime > m_lastModifiedTime){ // Get rid of the old properties m_props.clear(); try { m_props.load(new FileInputStream(PFILE)); }catch(Exception e){ e.printStackTrace(); } } m_lastModifiedTime = newTime; String val = m_props.getProperty(name); if( val == null ) { return defaultVal; } else { return val; } } /** * 读取一特定的属性项 * * @param name 属性项的项名 * @return 属性项的值(如此项存在), 空(如此项不存在) */ public String getConfigItem(String name){ return getConfigItem(name,""); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值