Réponses:
String fileContents = new File('/path/to/file').text
Si vous devez spécifier l'encodage des caractères, utilisez plutôt ce qui suit:
String fileContents = new File('/path/to/file').getText('UTF-8')
File
objet provient d'un pot de java ordinaire. Je ne savais pas si Groovy avait peut-être sa propre File
classe spéciale avec l' text
attribut, ou quelque chose, mais il semble que peu importe d'où File
vient l' objet, qu'il soit instancié par du code Groovy ou du code Java.
Le chemin le plus court est en effet juste
String fileContents = new File('/path/to/file').text
mais dans ce cas, vous n'avez aucun contrôle sur la façon dont les octets du fichier sont interprétés comme des caractères. AFAIK groovy essaie de deviner l'encodage ici en regardant le contenu du fichier.
Si vous souhaitez un codage de caractères spécifique, vous pouvez spécifier un nom de jeu de caractères avec
String fileContents = new File('/path/to/file').getText('UTF-8')
Voir la documentation de l'API surFile.getText(String)
pour plus de référence.
someFile.text
ne fait pas de supposition intelligente, elle utilise simplement l'encodage par défaut de la plateforme (généralement UTF-8 sur les Linux modernes, mais quelque chose comme windows-1252 ou MacRoman sur Windows / Mac OS, sauf si vous l'avez remplacé -Dfile.encoding=...
)
Une légère variation ...
new File('/path/to/file').eachLine { line ->
println line
}
la façon la plus simple serait
ce qui signifie que vous pouvez simplement faire:
new File(filename).text
Dans mon cas, new File()
cela ne fonctionne pas, il provoque une FileNotFoundException
exécution dans un travail de pipeline Jenkins. Le code suivant a résolu ce problème et est encore plus facile à mon avis:
def fileContents = readFile "path/to/file"
Je ne comprends toujours pas complètement cette différence, mais peut-être que cela aidera quelqu'un d'autre avec le même problème. Peut-être que l'exception a été provoquée car new File()
crée un fichier sur le système qui exécute le code groovy, qui était un système différent de celui qui contient le fichier que je voulais lire.
String fp_f = readFile("any_file") if (fp.length()) { currentBuild.description = fp }
De plus, si le fichier n'est pas trouvé, il y a une erreur.
Ici, vous pouvez trouver une autre façon de faire de même.
Lire le fichier.
File file1 = new File("C:\Build\myfolder\myTestfile.txt");
def String yourData = file1.readLines();
Lire le fichier complet.
File file1 = new File("C:\Build\myfolder\myfile.txt");
def String yourData= file1.getText();
Lire le fichier 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)
}
Créez un nouveau fichier.
new File("C:\Temp\FileName.txt").createNewFile();
def
lorsque vous spécifiez le type.