Risposte:
String fileContents = new File('/path/to/file').text
Se è necessario specificare la codifica dei caratteri, utilizzare invece quanto segue:
String fileContents = new File('/path/to/file').getText('UTF-8')
Fileoggetto proviene da un normale vaso Java. Non ero sicuro che forse Groovy avesse una sua Fileclasse speciale con l' textattributo o qualcosa del genere, ma sembra che non abbia importanza da dove Fileprovenga l' oggetto, che sia istanziato dal codice Groovy o dal codice Java.
Il modo più breve è davvero giusto
String fileContents = new File('/path/to/file').text
ma in questo caso non hai alcun controllo su come i byte nel file vengono interpretati come caratteri. AFAIK groovy prova a indovinare la codifica qui guardando il contenuto del file.
Se si desidera una codifica di caratteri specifici, è possibile specificare un nome di set di caratteri con
String fileContents = new File('/path/to/file').getText('UTF-8')
Consulta i documenti API suFile.getText(String) per ulteriori riferimenti.
someFile.textnon fa un'ipotesi intelligente, usa semplicemente la codifica predefinita della piattaforma (di solito UTF-8 su Linux moderni, ma qualcosa come windows-1252 o MacRoman su Windows / Mac OS, a meno che tu non l'abbia ignorato -Dfile.encoding=...)
Una leggera variazione ...
new File('/path/to/file').eachLine { line ->
println line
}
il modo più semplice sarebbe
il che significa che potresti semplicemente fare:
new File(filename).text
Nel mio caso new File()non funziona, causa un errore FileNotFoundExceptionquando viene eseguito in un processo di pipeline Jenkins. Il seguente codice ha risolto questo problema ed è ancora più facile secondo me:
def fileContents = readFile "path/to/file"
Non capisco ancora completamente questa differenza, ma forse aiuterà chiunque altro con lo stesso problema. Forse l'eccezione è stata causata perché new File()crea un file sul sistema che esegue il codice groovy, che era un sistema diverso da quello che contiene il file che volevo leggere.
String fp_f = readFile("any_file") if (fp.length()) { currentBuild.description = fp } Inoltre, se il file non viene trovato, si verifica un errore.
Qui puoi trovare un altro modo per fare lo stesso.
Leggi il file.
File file1 = new File("C:\Build\myfolder\myTestfile.txt");
def String yourData = file1.readLines();
Leggi il file completo.
File file1 = new File("C:\Build\myfolder\myfile.txt");
def String yourData= file1.getText();
Leggi il file 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)
}
Crea un nuovo file.
new File("C:\Temp\FileName.txt").createNewFile();
defquando si specifica il tipo.