private void println() throws IOException
{
String line;
StringBuffer buf = new StringBuffer();
FileInputStream in = new FileInputStream(enumerateFiles.get(currentEnumFilePath).getEnumFile());
java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.InputStreamReader(in));
while((line = reader.readLine()) != null)
{
buf.append(line).append("\n");
}
reader.close();
logger.info(buf.toString());
}
public Properties getProperties()
{
return prop;
}
public Element getElement()
{
return element;
}
public boolean isFileFlag() {
return fileFlag;
}
public String getFileName()
{
return file.getName();
}
public String getPath()
{
return file.getPath();
}
public String getTransferValue(String key)
{
//由 Type + OriginallyValue + value 或 Type + TransferAttr + value组成。
String[] keys = key.split("\\|\\|");
//没有传Value 是返回null
if (keys.length == 2) return null;
String transferValue=keys[2];
XMLParserHelper helper = new XMLParserHelper();
for(String s : enumerateFiles.keySet()){
Element TransferAttrs = helper.getElement(enumerateFiles.get(s).getEnumElement(),null,keys[0]);
if (TransferAttrs == null)
{
//logger.warn("Cannot found the xml properties [" + keys[0] + "]");
//return keys[2];
continue;
}
for(int i = 0; i < TransferAttrs.getChildCount(); i++)
{
Element transfer = TransferAttrs.getElement(i);
if (transfer == null) continue;
String orig_str = helper.getText(transfer, XMLParserHelper.ORIGINALL_VALUE);
String tran_str = helper.getText(transfer, XMLParserHelper.TRANSFER_VALUE);
if (XMLParserHelper.ORIGINALL_VALUE.equals(keys[1]) && keys[2].equals(orig_str))
{
transferValue=tran_str;
return transferValue;
}
else if (XMLParserHelper.TRANSFER_VALUE.equals(keys[1]) && keys[2].equals(tran_str))
{
transferValue=orig_str;
return transferValue;
}
}
}
logger.warn("Cannot found the value ["+keys[2]+ "] by node[" + keys[0] + " in xml file]");
return transferValue;
}
//设置所有的枚举文件的信息
public String setEnumInfo(String filePath){
//是否是ListenerFile5的值:/var/mqsi/config/enumerateTemplet.xml
if(PatternEnumerateFile.isXMLFile(filePath)){
//var-->config目录下的所有枚举文件 初始化enumPaths
if(enumPaths.size()<=0){
enumPaths=PatternEnumerateFile.getEnumPaths(filePath);
for(String s : enumPaths){
enumerateFiles.put(s, new EnumerateFile(s));
//设置当前枚举路径
currentEnumFilePath=s;
//设置枚举根节点
loadXml();
}
}
if(enumPaths!=null&&enumPaths.size()>0){
currentEnumFilePath=enumPaths.get(0);
filePath=enumPaths.get(0);
}
}
return filePath;
}
}
分享到:
相关推荐
博文链接:https://xzio.iteye.com/blog/159344
这个名为"FileListener.rar"的压缩包提供了一个自定义的文件监听机制,它在Web应用启动时自动开始工作,并且具备定时扫描和文件变更通知功能。以下是对这个机制的详细解释: 首先,`FileMonitor.java`可能是核心的...
FileListener.java文件中给出了文件监听操作的示例代码,可直接在方法中增加代码来完成发现文件或文件夹修改后需要做的事情。另还包括了需要的jar包。
知识点4:编写继承FileAlterationListenerAdaptor的类FileListener 通过编写继承FileAlterationListenerAdaptor的类FileListener,可以实现文件变化事件的处理。在FileListener类中,可以 override相应的方法,例如...
分布式中间件Seata是一款在现代微服务架构中广泛使用的开源工具,它专注于为开发者提供高性能、易用的分布式事务解决方案。Seata的全称是Simple Extensible Autonomous Transaction Architecture,意即简单可扩展的...
##### 4. JDOM生成和解析XML **定义**: JDOM是一个用于处理XML文档的Java库,与DOM4J类似。 **应用场景**: 当需要简单、快速地处理XML文档时,JDOM是一个很好的选择。 **核心概念**: - **Document**: 表示整个XML...
4. 考虑使用日志框架,如NLog或log4net,它们提供了更高级的功能和更好的可配置性。 总结: C#中使用`TraceSource`记录程序日志是一种高效的方法,它允许你灵活地控制日志级别,方便地输出到不同目的地,并可通过...
4. 处理接收到的事件,调用`FileListener`的相关方法来执行实际的业务逻辑。 注意,`WatchService`的性能和效率依赖于操作系统的支持,因此在某些情况下可能会有延迟或无法检测到所有变化。此外,由于Java的`...
`fileListener`是一个用于监听各种文件操作事件的对象,如选择、取消、完成等。 #### 1.3 字节计数 - `totalBytes`: 存储文件的总字节数。 - `uploadedBytes`: 已上传的字节数。 #### 1.4 文件类型过滤 `...
3. **FileListener**: 这是文件监听器的接口,当文件发生变化时,这个接口的实现将被调用。在实际项目中,你可以定义具体的行为,如通知服务、更新数据库等。 4. **FileFilterImpl**: 文件过滤器用于指定只处理特定...