2013-11-04 18 views
5

Sono nuovo di groovy e SOAP UI gratuito. Sto usando uno script groovy per guidare il mio test per l'interfaccia utente SOAP.Leggere e scrivere un file in groove

Voglio scrivere uno script che legge un file di ID di persona, rimuove il primo, imposta una proprietà, scrive il file di nuovo senza quello che ho appena letto.

Ecco il mio primo taglio a questo:

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

L'uscita viene visualizzato sul SOAP UI e il file non viene toccato. Mi sono perso.

risposta

7
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!" 
} 
+0

Sì, questo è quello che ho finito per fare, solo ho usato BufferedWriter. Quando tutto il resto fallisce, usa Java. :) Grazie per la risposta. – Thom

0
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() 
Problemi correlati