`

.xml正向反向取值(之二)

    博客分类:
  • java
 
阅读更多
FileManager类:
/* 
 * Class: FileManager
 * Description: 加载并启动文件监听,并对外开放接口访问
 * Version: 1.0 
 * Author: Carson.Huang
 * Created on Dec 1, 2010 
 */
public class FileManager
{
	//注册的监听文件列表
	private static HashMap<String, FileListener> FMap = new HashMap<String, FileListener>();
	//配置文件路径(从命令行传入)
	private String configFile = null;
	//默认配置文件(从jar包中加载)
	private String defaultConfigFile = "FileListener.properties";
	
    private Logger logger = Logger.getLogger(FileManager.class);
	//所有的枚举以这个为常量为标准
    public static final String ENUMERATE="enumerateTemplet.xml";
	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		FileManager fm = new FileManager();
		if (args.length > 0)
		{
			fm.configFile = args[1];
		}
		if (FMap.size() == 0)
		{
			fm.regFileListener();
			System.out.println("Execute Command success.");
		}
		else
		{
			System.out.println("The program is running. cannot run again.");			
		}
		//enumerate_Eplus.xml
		System.out.println(getTransferValue("DealerCode","ECARE"));
		System.out.println(getOriginallyValue("DealerCode","03"));
		
		System.out.println(getTransferValue("DisplayName_lang","5555"));
		System.out.println(getOriginallyValue("DisplayName_lang","1"));
	}
	
	//注册需要监听的文件(从配置文件读取配置信息)
	/**
	 * 
	 */
	public void regFileListener()
	{
		Properties prop = loadProperties();
		String num = prop.getProperty("ListenerFileNum");
		String Interval = prop.getProperty("Interval");
		if (("".equals(num)) || num == null || ("".equals(Interval)) || Interval == null)
		{
			logger.error("Configuration error, please check it! Interval: " + Interval + ", ListenerFileNum: " + num);
		}
		else
		{
			int number = Integer.parseInt(num);
			int t = Integer.parseInt(Interval);
			for (int i = 0; i < number; i++)
			{
				String filePath = prop.getProperty("ListenerFile" + (i+1));
				if (filePath != null)
				{
					FileListener fileTask = new FileListener(filePath);
					
					//第一次调用,先同步加载配置文件属性,再启动监听线程
					fileTask.loadFile();
					
					Timer timer = new Timer();
					timer.schedule(fileTask, new Date(), t);
					
					//枚举文件需要统一为enumerateTemplet.xml  做为key
					String fileName=filePath.substring(filePath.lastIndexOf("/")+1,filePath.length());
					if(fileName.equalsIgnoreCase(ENUMERATE)){
						FMap.put(fileName, fileTask);	
					}else{
						FMap.put(fileTask.getFileName(), fileTask);	
					}
					
				}
				else
				{
					logger.error("Configuration item[ListenerFileNum" + (i+1) + "[ doesn't exist. ignore...");
				}
			}
		}
	}
	
	//停止监听
	public void desFileLister()
	{
		if (FMap.size() > 0)
		{
			Iterator<String> it = FMap.keySet().iterator();
			while (it.hasNext())
			{
				String key = (String)it.next();
				((FileListener)FMap.get(key)).cancel();
			}
		}
	}
	
	
分享到:
评论

相关推荐

    opencv的各种haarcascade.xml文件

    haarcascades\haarcascade_eye.xml haarcascades\haarcascade_eye_tree_eyeglasses.xml haarcascades\haarcascade_frontalface_alt.xml haarcascades\haarcascade_frontalface_alt2.xml haarcascades\haar...

    License.xml 破解码

    License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码License.xml 破解码...

    AndroidManifest.xml反编译工具

    提到的反编译工具是"AXMLPrinter2.jar",这是一个Java可执行文件,用于将二进制的AXML文件转换回可读的XML格式。使用`AXMLPrinter2.jar`,开发者可以轻松地查看和分析APK中的`AndroidManifest.xml`内容,这对于调试...

    javax.xml.bind.jar

    javax.xml.bind.jar

    hibernate.cfg.xml

    hibernate.cfg.xml hibernate框架的配置文件

    javax.xml.ws.Service 报错需要的包

    在Java开发中,`javax.xml.ws.Service` 是一个核心组件,属于Java API for XML Web Services (JAX-WS)的一部分,用于创建客户端和服务端的Web服务代理。报错通常表明缺少必要的依赖包,这可能会影响到程序的正常运行...

    javax.xml.stream_1.0.1.v201004272200.jar

    javax.xml.stream_1.0.1.v201004272200.jar

    人脸识别需要的haarcascade_frontalface_default.xml文件

    haarcascade_frontalface_default.xml 和 haarcascade_eye.xml 文件是OpenCV库中用于人脸检测和眼睛检测的重要数据结构。 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,...

    javax.xml.bind.jar 包

    在集成阿里云移动推送时,部署到服务器的时候遇到了java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter 错误,产生原因是缺少javax.xml.bind.DatatypeConverter

    提取apk文件中的AndroidManifest.XML

    AndroidManifest.xml是APK的核心组件之一,它提供了应用的基本配置信息,包括应用名称、版本、所需权限、服务、活动、广播接收器等。当我们需要深入分析或修改一个APK时,提取AndroidManifest.xml就显得尤为重要。本...

    codetemplates.xml

    codetemplates.xml

    haarcascade_eye.xml

    haarcascade_eye.xml

    unity3d读取xml插件Mono.Xml

    Unity3D是一款强大的跨平台游戏开发引擎,广泛应用...然而,需要注意的是,虽然Mono.Xml提供了基础的XML处理功能,但它的功能相对有限,对于更复杂的需求,可能需要考虑使用其他如System.Xml的库或者第三方XML解析库。

    lang_zh_cn.xml

    foxit reader的中文包lang_zh_cn.xml。

    PluginManagerPlugins.xml文件

    解决Notepad++ Plugin Manager无法加载插件的方法。把PluginManagerPlugins.xml放在这个目录下C:\Users\你主机系统用户\AppData\Roaming\Notepad++\plugins\config 重新打开软件

    apns-conf.xml

    网络上很多的APN文件,看了许多,没有带电信参数的,花费一晚上的时间,通宵写成了这个,确切的说是改成了这个集成了中国电信相关参数的apns-conf.xml文件,借阅请说明出处,谢谢

    Maven原版settings.xml配置文件(下载)

    Maven原版settings.xml配置文件,根据个人需要,可以打开对应注释或替换相关阿里云镜像或远程仓库地址即可使用。

    maven pom.xml 动态读取变量值插件

    该jar包功能,可以在一个properties文件里面定义jdbc.url=${url},在另一个properties文件定义具体的值,通过该jar可以获取到哪个具体的值。下载之后,自行安装到本地...具体pom.xml配置使用可以参考网络其他博文,谢谢

    main-menu.xml

    mysqlWorkbench 汉化

    codetemplates.xml下载(Eclipse 注释代码模板文件)

    codetemplates.xml下载(Eclipse 注释代码模板文件)

Global site tag (gtag.js) - Google Analytics