枚举方法EnumerateFile

本文介绍了一个用于监控文件变化并实现自动加载更新内容的Java类。该类通过比较文件的最后修改时间来判断是否需要重新加载文件。适用于配置文件等需要实时监控变更的场景。

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

import java.io.File;
import java.util.Map;
import java.util.Map.Entry;
import org.dom4j.Element;
public class EnumerateFile
{
// 枚举文件对应一个File
private File enumFile;

// 对应一个Element
private Element enumElement;

// 对应一个lastModified
private long enumLastModefieds;

// 需要重新加载的枚举文件
private String reloadEnumFilePath = "";

public File getEnumFile()
{
return enumFile;
}

public void setEnumFile(File enumFile)
{
this.enumFile = enumFile;
}

public Element getEnumElement()
{
return enumElement;
}

public void setEnumElement(Element enumElement)
{
this.enumElement = enumElement;
}

public long getEnumLastModefieds()
{
return enumLastModefieds;
}

public void setEnumLastModefieds(long enumLastModefieds)
{
this.enumLastModefieds = enumLastModefieds;
}

public String getReloadEnumFilePath()
{
return reloadEnumFilePath;
}

public void setReloadEnumFilePath(String reloadEnumFilePath)
{
this.reloadEnumFilePath = reloadEnumFilePath;
}

/**
* 加载枚举文件属性
* @param filePath
*/
public EnumerateFile(String filePath)
{
// 设置枚举文件
this.setEnumFile(new File(filePath));
// 设置枚举文件的最后更新的时间
this.setEnumLastModefieds(this.getEnumFile().lastModified());
}

/**
* 确认那些枚举文件是要改动的,改过过后的文件要求立即加载
* 2011-12-28,Xgw123485
*/
public static boolean checkFileIsModified(
Map<String, EnumerateFile> enumerateFiles)
{
boolean isModified = false;
for (Entry<String, EnumerateFile> entry : enumerateFiles.entrySet())
{
EnumerateFile file = entry.getValue();
file.setReloadEnumFilePath("");
if (file.getEnumFile().lastModified() > file.getEnumLastModefieds())
{
file.setReloadEnumFilePath(entry.getKey());
isModified = true;
}
}
return isModified;
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值