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

String&XML

阅读更多
package com.huawei.ngbss.esb;
import java.io.File;
import java.io.FileInputStream;
import java.util.Enumeration;
import java.util.Properties;
import java.util.TimerTask;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class FileListener extends TimerTask
{
    private File file=null;
    private long lastModified=0;
    private Properties prop=new Properties();
    private boolean fileFlag=true; 
       public boolean isFileFlag()
    {
        return fileFlag;
    }
     
    public void setFileFlag(boolean fileFlag)
    {
        this.fileFlag = fileFlag;
    }

    public Logger getLogger()
    {
        return logger;
    }

    public void setLogger(Logger logger)
    {
        this.logger = logger;
    }
   
    private Logger logger=Logger.getLogger(FileListener.class);
   
    FileListener(String filePath)
    {
        if(filePath!=null)
        {
            this.file=new File(filePath);
            if(!file.isFile())
            {
                logger.error("This file["+filePath+"]does not exist,please check it.");
                return;
            }
           
            if(this.file.getName().endsWith(".properties"))
            {
                this.fileFlag=true;
            }
            else if(this.file.getName().endsWith(".xml"))
            {
                this.fileFlag=false;
            }
            else
            {
                logger.info("no thing to do......");
            }
        }
    }
   
     private boolean isFileUpdated()
    {
        if(this.fileFlag)
        {
            long lastUpdatedTime=file.lastModified();
            //if this file has upate the lastUpdateTime will > 0
            return lastUpdatedTime >this.lastModified;
        }
        else
        {
            return false;
        }
    }
   
      public void loadFile()
    {
        if(this.fileFlag)
        {
            loadProperties();
        }
        else
        {
           
        }
    }
      public void loadProperties()
    {
        //set the lastModfied
        this.lastModified=file.lastModified();
        FileInputStream in=null;
        try
        {
            logger.info("The Properties file["+getPath()+"] loading......");
            in=new FileInputStream(file);
            prop.load(in);
            //print all properties
            //get properties all property KeyNames
            Enumeration<?> enu=prop.propertyNames();
            StringBuffer buf=new StringBuffer();
            while(enu.hasMoreElements())
            {
                String key=(String) enu.nextElement();
                buf.append("     key: ").append(key).append(",     value: ")
                .append(prop.getProperty(key)).append("\n");
            }
            logger.info(buf.toString());
            logger
            .info("The properties file[" + getPath()
                    + "] load complete.");
           
                if("log4j.properties".equalsIgnoreCase(getFileName()))
            {
                PropertyConfigurator.configure(getProperties());
            }
        }
        catch (Exception e)
        {
            logger.error("The file[" + getPath()
                    + "] doesn't exist, reload file unsuccess.");
            e.printStackTrace();
        }
    }
     public void run()
    {
        if(isFileUpdated() && fileFlag)
        {
            logger.info("the Properties file["+getPath()+"] was modified.");
            loadFile();
        }
        else if(isFileUpdated() && !fileFlag)
        {
            loadFile();
        }
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics