FileConnection
连接公共配置
- 定义文件类型的连接示例,指定连接实现代码类。
属性配置
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
id | 标识 | string | fileConnection |
class | 实例 | string | FileConnection |
接口实现配置
- 主要用于定义交互协议类型,定义数据接入输出的连接方式。特别说明step下的connection属于引用类型,配置与声明定义时的connection略有不同。
connection属性配置
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
ref | 引用 | string | 引用在commons.xml中已经定义好的fileconnection对象 |
type | 数据流向 | string | In(为输入)、out (为输出) |
property属性配置
property:连接的属性节点,可以配置连接所需要的属性参数
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
path | 指定文件路径 | string | 文本字符串 |
append | 将内容写到文件并覆盖 | string | 默认是false,设置为true就是在文件后面追加 |
type | 数据类型 | string | list(按行读取为list),byte(读取为字节数组),不配默认字符串 |
removeLines | 表示可以删除掉几行内容 | string | 数字 |
示例实现
示例一(文件复制)
tips:connection的type为in时是将文件中的数据读入到this中,为out是将this中的数据写入到property指定的文件下(无论该文件是否存在都会写入)
<transaction id="1" version="2.0">
<step id="1">
<connection ref="fileConnection" type="in">
<property name="path" value="E:\ideaProject\xckj\Be_Dea_LX\Be_Dea_LX\msg\send.xml"/>
</connection>
<filter ref="publicFilter" type="in">
<log value="info:${this}"/>
</filter>
</step>
<step id="2">
<connection ref="fileConnection" type="out">
<property name="path" value="E:\ideaProject\xckj\Be_Dea_LX\Be_Dea_LX\msg\msg1\msg11\copy.xml"/>
</connection>
</step>
</transaction>
输出:
读取文件
保存文件
示例二(type测试)
<connection ref="fileConnection" type="in">
<property name="path" value="E:\ideaProject\xckj\Be_Dea_LX\Be_Dea_LX\msg\socket.txt"/>
<property name="type" value="list"/>
</connection>
<filter ref="publicFilter" type="in">
<log value="输出:${this}"/>
</filter>
输出:一个字符list
<connection ref="fileConnection" type="in">
<property name="path" value="E:\ideaProject\xckj\Be_Dea_LX\Be_Dea_LX\msg\socket.txt"/>
<property name="type" value="byte"/>
</connection>
<filter ref="publicFilter" type="in">
<log value="输出字符数组:${bytes2Str(this,'utf-8')}"/>
</filter>
输出:一个字符数组
示例三(append测试)
<foreach tag="i" end="5">
<filter ref="publicFilter" type="in">
<field value="第${i}个数" scope="this"/>
</filter>
<connection ref="fileConnection" type="out">
<property name="path" value="E:\ideaProject\xckj\Be_Dea_LX\Be_Dea_LX\msg\socket1.xml"/>
<property name="append" value="true"/>
</connection>
</foreach>
输出:append为true时
输出:append为false时
示例四(removeLines测试)
需配合type=list使用,数字表示删除第几行
<connection ref="fileConnection" type="in">
<property name="path" value="E:\ideaProject\xckj\Be_Dea_LX\Be_Dea_LX\msg\socket.txt"/>
<property name="removeLines" value="1"/>
<property name="type" value="list"/>
</connection>
<log value="this:${this}"/>
输出:删除第1行