`
Xgw123485
  • 浏览: 84944 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

String&XML-1

 
阅读更多
package com.huawei.ngbss.esb;

import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Properties;
import java.util.Timer;

import org.apache.log4j.Logger;

/**
* @author Xgw123485
*
* 2011-12-1
*/
public class FileManager
{
    //注册的监听文件列表
    private static HashMap<String,FileListener>FMap=new HashMap<String,FileListener>();
    //配置文件从命令行传入
    private String configFile=null;
    //默认配置文件(从jar包中加载)
    private String defaultConfigFile="FileListener.properties";
   
    private static final String ENUMERATE="enumerateTemplet.xml";
   
    private Logger logger=Logger.getLogger(FileManager.class);
   
    /**
     * 注册要监听的文件(从配置文件读取配置信息)
     */
    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);
                    //得到文件名
                    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...");
                }
            }
        }      
    }
   
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics