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