在groovy中读写文件

时间:2013-11-04 21:33:03

标签: groovy soapui

我是groovy和SOAP UI的新手。我正在使用一个groovy脚本来推动我对SOAP UI的测试。

我想编写一个脚本来读取人员ID文件,删除第一个文件,设置属性,将文件写回来,而不是我刚读过的文件。

这是我的第一次切入:

List pids = new ArrayList()

new File("c:/dev/pids.csv").eachLine { line -> pids.add(line) }

String pid = pids.get(0);
testRunner.testCase.setPropertyValue( "personId", pid )
pids.remove(0)

new File("c:/dev/pids.csv").withWriter { out ->
    pids.each() { aPid ->
        out.writeLine(aPid)
    }
}

输出显示在SOAP UI上,文件不会被触及。我输了。

2 个答案:

答案 0 :(得分:8)

ArrayList pids = null
PrintWriter writer = null

File f = new File("c:/temp/pids.txt")

if (f.length() > 0){
   pids = new ArrayList()

   f.eachLine { line -> pids.add(line) }

   println("Item to be removed: " + pids.get(0))
   //testRunner.testCase.setPropertyValue( "personId", pid )
   pids.remove(0)

   println pids

   writer = new PrintWriter(f)
   pids.each { id -> writer.println(id) }

   writer.close()
}
else{
   println "File is empty!"
}

答案 1 :(得分:1)

def myFile = new File("newfile.txt")

def newFile = new File("newfile2.txt")

//testRunner.testCase.setPropertyValue( "personId", pid )

PrintWriter printWriter = new PrintWriter(newFile)

myFile.eachLine { currentLine, lineNumber ->

    if(lineNumber > 1 )

       printWriter.println(currentLine)
  }

printWriter.close()