Antworten:
String fileContents = new File('/path/to/file').text
Wenn Sie die Zeichenkodierung angeben müssen, verwenden Sie stattdessen Folgendes:
String fileContents = new File('/path/to/file').getText('UTF-8')
File
Objekt aus einem gewöhnlichen Java-Glas stammt. Ich war mir nicht sicher, ob Groovy vielleicht eine eigene spezielle File
Klasse mit dem text
Attribut oder so hatte, aber es scheint, dass es keine Rolle spielt, woher das File
Objekt kommt, ob es durch Groovy-Code oder Java-Code instanziiert wird.
Der kürzeste Weg ist in der Tat gerecht
String fileContents = new File('/path/to/file').text
In diesem Fall haben Sie jedoch keine Kontrolle darüber, wie die Bytes in der Datei als Zeichen interpretiert werden. AFAIK groovy versucht, die Codierung hier anhand des Dateiinhalts zu erraten.
Wenn Sie eine bestimmte Zeichenkodierung wünschen, können Sie einen Zeichensatznamen mit angeben
String fileContents = new File('/path/to/file').getText('UTF-8')
Weitere Informationen findenFile.getText(String)
Sie in den API-Dokumenten .
someFile.text
macht keine intelligente Vermutung, sondern verwendet einfach die Standardcodierung der Plattform (normalerweise UTF-8 unter modernen Linuxen, aber so etwas wie Windows-1252 oder MacRoman unter Windows / Mac OS, es sei denn, Sie haben es überschrieben -Dfile.encoding=...
)
Eine leichte Variation ...
new File('/path/to/file').eachLine { line ->
println line
}
der einfachste Weg wäre
was bedeutet, dass Sie einfach tun könnten:
new File(filename).text
In meinem Fall new File()
funktioniert es nicht, es führt zu einem FileNotFoundException
Ausführen in einem Jenkins-Pipeline-Job. Der folgende Code hat dies gelöst und ist meiner Meinung nach noch einfacher:
def fileContents = readFile "path/to/file"
Ich verstehe diesen Unterschied immer noch nicht vollständig, aber vielleicht hilft es jedem anderen mit den gleichen Problemen. Möglicherweise wurde die Ausnahme verursacht, weil new File()
auf dem System eine Datei erstellt wurde, die den groovigen Code ausführt. Dies war ein anderes System als das, das die Datei enthält, die ich lesen wollte.
String fp_f = readFile("any_file") if (fp.length()) { currentBuild.description = fp }
Wenn die Datei nicht gefunden wird, liegt ein Fehler vor.
Hier finden Sie einen anderen Weg, um dasselbe zu tun.
Datei lesen.
File file1 = new File("C:\Build\myfolder\myTestfile.txt");
def String yourData = file1.readLines();
Vollständige Datei lesen.
File file1 = new File("C:\Build\myfolder\myfile.txt");
def String yourData= file1.getText();
Datei lesen Line Bye Line.
File file1 = new File("C:\Build\myfolder\myTestfile.txt");
for (def i=0;i<=30;i++) // specify how many line need to read eg.. 30
{
log.info file1.readLines().get(i)
}
Erstellen Sie eine neue Datei.
new File("C:\Temp\FileName.txt").createNewFile();
def
wenn Sie den Typ angeben.