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...");
}
}
}
}
分享到:
相关推荐
##### 1. 数据类型支持 Apache XML-RPC 支持以下几种基本的数据类型: - `<i4>` 或 `<int>`:对应 `java.lang.Integer` 类型。 - `<boolean>`:对应 `java.lang.Boolean` 类型。 - `<string>`:对应 `java.lang....
1. 导入`String.xml`:将应用中的`String.xml`文件导入工具,工具会解析XML结构并将其转换成Excel表格。 2. 编辑和翻译:在Excel中进行修改,添加新的行或列以适应新的字符串或语言。 3. 导出回XML:完成编辑后,...
1. **XML到Excel转换**:将`String.xml`文件解析成Excel表格,这样翻译人员可以在熟悉的表格环境中进行工作。每个字符串资源的ID、值和注释都可以清晰地显示在Excel的不同列中,便于理解和编辑。 2. **Excel到XML...
1. 导入`String.xml`到Excel,自动生成表格结构,包括字符串ID、默认值和不同语言的翻译。 2. 在Excel中编辑完成后,导回为`String.xml`,更新或创建对应的资源文件。 3. 支持多语言同步更新,避免手动逐一修改各个...
1. **注册DOM实现**:开发者可以通过`registerDOMImplementation(String className)`方法注册自定义的DOM实现。 2. **获取DOM实现**:通过`getDOMImplementation(String features)`方法,我们可以根据指定的特性...
string MyMethod(string param1, int param2); } ``` 然后,将接口实现类与`XmlRpcServerProtocol`关联,以处理传入的XML-RPC请求。 4. **数据类型支持**:XML-RPC支持多种基本数据类型,如字符串、整数、...
1. **字符串提取**:从源代码中的`R.string`引用自动提取出需要翻译的字符串。这减少了手动查找和遗漏的可能性,提高了工作效率。 2. **格式化与清理**:对`string.xml`文件进行格式化,使其符合规范,同时移除无用...
1. **读取XML文件**:工具首先读取String.xml文件,解析XML结构,获取每个字符串元素。 2. **提取数据**:从每个字符串元素中提取出ID和值,保存到内存或临时数据结构中。 3. **创建Excel表格**:然后,工具会在内存...
1. **序列化**:Simple-XML的序列化过程是将Java对象转换为XML文档。通过在类或字段上使用`@Element`、`@Attribute`等注解,可以指示哪些属性应当被转换为XML元素或属性。例如,一个`Person`类可以这样定义: ```...
csv2string-xml-android python脚本将csv文件转换为Android strings.xml资源多种语言 :rainbow: 要求 python version 3 为了满足要求,请运行以下命令: $ pip install lxml 如果您不是在virtualenv中使用pip...
1. **jaxb-api-2.2.6.jar**: 这是JAXB API的实现,包含了用于XML绑定的基本接口和类。它定义了如何在Java类和XML文档之间映射的规范,如`@XmlRootElement`、`@XmlElement`等注解,以及`Unmarshaller`、`Marshaller`...
1. **对象到XML的转换**:XML-Encoder可以将Python的基本类型(如字符串、数字、列表、字典等)以及自定义类实例转化为XML字符串。这对于那些需要以XML格式发送或接收数据的应用程序非常有用。 2. **自定义序列化...
### XML-RPC协议详解 #### 一、XML-RPC简介 **XML-RPC**(XML Remote Procedure Call)是一种轻量级的远程过程调用协议,它允许不同操作系统、不同环境中的程序通过Internet进行通信。XML-RPC使用HTTP作为传输协议...
1. **XML基础**:`string.xml`文件是基于XML格式的,XML是一种可扩展标记语言,用于结构化数据的存储和传输。了解XML的基本语法和元素结构对于理解和处理这类文件至关重要。 2. **Android资源文件**:在Android应用...
php /* 从网上找来的XML-RPC库,对于开发小型的外部通讯接口很有用 */ function & XML_serialize($data, $level = 0, $prior_key = NULL){ #assumes a hash, keys are the variable names $xml_serialized_string = ...
1. **引入库**:Android SDK已经内置了SAX解析器,无需额外添加依赖库。 2. **创建解析器**:使用`SAXParserFactory`类的静态方法`newInstance()`获取一个解析器工厂对象,然后调用其`newSAXParser()`方法创建SAX...
1. **解析XML到String** 要将XML文件读取为String,首先需要创建一个`Document`对象,这是DOM4J的核心数据结构,代表整个XML文档。可以使用`DocumentHelper`类的静态方法`parseText()`或`readFile()`来完成这个任务...
$xml = simplexml_load_string($xmlString); file_put_contents('items.xml', $xml->asXML()); ``` **读取(Read)** 读取XML文件是SimpleXML最基础的功能。通过`simplexml_load_file()`函数,我们可以轻松获取XML...
- 使用`pugi::xml_document::load_file()`或`pugi::xml_document::load_string()`来加载XML文件或字符串。 - 解析过程会自动处理编码转换,支持UTF-8、UTF-16和ASCII等多种编码。 4. **XML遍历** - `node.child...
利用pugixml 转化xml为string