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')
File
oggetto proviene da un normale vaso Java. Non ero sicuro che forse Groovy avesse una sua File
classe speciale con l' text
attributo o qualcosa del genere, ma sembra che non abbia importanza da dove File
provenga 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.text
non 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 FileNotFoundException
quando 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();
def
quando si specifica il tipo.