问题描述
我已经编写了生成随机ID并将其存储到文件的代码。然后发送包含已存储ID的数据。 然后我将其设置为循环3次。 数据成功发送了3次,但是只有一个文件,并且仅包含LAST ID。 我想拥有3个文件,分别名为1,2,3。
for (int i = 1; i <= 3; i++) {
//test data using dynamic Id at order Id
String RandomOrderId = CustomKeywords.'test.RandomStringUUID.getUuid'()
println(RandomOrderId)
//store the OrderId to file
def OrderId = new File(RunConfiguration.getProjectDir() + "/Data Files/OrderId.txt")
OrderId .newWriter().withWriter { it << RandomOrderId }
println OrderId.text
def exceldata = CustomKeywords.'test.excelfile.ReadExcelData'('Data Files/1.xlsx','testdata','Test case1','Json Data 1')
exceldata = exceldata.replace("<OrderId>",OrderId.text)
Order.Message('message',exceldata)
}
解决方法
File.newWriter()
覆盖文件内容的问题。
替换此行:
OrderId.newWriter().withWriter { it << RandomOrderId }
具有以下内容:
OrderId.newWriter(true).withWriter { it << RandomOrderId << '\n' }
或:
OrderId.withWriterAppend{ it << RandomOrderId << '\n' }
或:
OrderId.append( RandomOrderId + '\n' )
在此处详细了解文件方法: http://docs.groovy-lang.org/latest/html/groovy-jdk/java/io/File.html