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>

输出:

读取文件

1666257506469

保存文件

1666257614420

1666257719361

示例二(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

1669023141564

<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>

输出:一个字符数组

1669023846706

示例三(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时

1669024406909

1669024437218

输出:append为false时

1669024550788

示例四(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行

1669024869262

results matching ""

    No results matching ""