Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Ant脚本进行文件读写_Ant - Fatal编程技术网

使用Ant脚本进行文件读写

使用Ant脚本进行文件读写,ant,Ant,我有两个文件: Read.txt: 我的名字叫乔伊 我的年龄是18岁 Write.txt: 把我的名字贴在这里: 在此处粘贴我的年龄: 因此,我应该能够从所需位置(它将出现在“=”之后)读取read.txt中的名称(Joy)和年龄(18),并在成功构建后将它们写入所需位置(在“:”之后)的write.txt中。我需要正则表达式吗 我们可以使用Ant脚本执行此操作吗?如果read.txt文件中的属性名称无效,则必须执行更复杂的操作 使用loadfile任务,您可以加载文件的全部内容,并根据需要对其

我有两个文件:

Read.txt:

我的名字叫乔伊

我的年龄是18岁

Write.txt:

把我的名字贴在这里:

在此处粘贴我的年龄:

因此,我应该能够从所需位置(它将出现在“=”之后)读取read.txt中的名称(Joy)和年龄(18),并在成功构建后将它们写入所需位置(在“:”之后)的write.txt中。我需要正则表达式吗


我们可以使用Ant脚本执行此操作吗?

如果read.txt文件中的属性名称无效,则必须执行更复杂的操作

使用
loadfile
任务,您可以加载文件的全部内容,并根据需要对其进行格式化:

<target name="write-to-file">
    <loadfile srcfile="read.txt" property="output">
        <filterchain>
            <tokenfilter>
                <replacestring from="My name is=" to="Paste my name here:" />
                <replacestring from="My age is=" to="Paste my age here:" />
            </tokenfilter>
        </filterchain>
    </loadfile>

    <echo file="write.txt" message="${output}" />
</target>

如果需要获取name和age的特定值(可能在脚本中稍后使用),则必须加载两次并过滤所需的零件:

<target name="load-lines">
    <loadfile srcfile="read.txt" property="my.name">
        <filterchain>
            <linecontains>
                <contains value="My name is" />
            </linecontains>
            <tokenfilter>
                <replacestring from="My name is=" to="" />
            </tokenfilter>
        </filterchain>
    </loadfile>

    <loadfile srcfile="read.txt" property="my.age">
        <filterchain>
            <linecontains>
                <contains value="My age is" />
            </linecontains>
            <tokenfilter>
                <replacestring from="My age is=" to="" />
            </tokenfilter>
        </filterchain>
    </loadfile>

    <echo file="write.txt" message="Paste my name here:${my.name}${line.separator}Paste my age here:${my.age}" />
</target>


Ant是一种构建工具,通常不用于以这种方式处理数据。FWIW:您不需要正则表达式,可以使用Ant来实现。Ant使用Java风格的属性,因此属性名不能包含空格字符。仍然可以完成您试图完成的任务,但是如果用非空白字符(如
\uu
-
)分隔单词,则会容易得多。