Comment copier des fichiers en Groovy
J'ai besoin de copier un fichier dans Groovy et j'ai vu quelques façons de le réaliser sur le web:
1
new AntBuilder().copy( file:"$sourceFile.canonicalPath",
tofile:"$destFile.canonicalPath")
2
command = ["sh", "-c", "cp src/*.txt dst/"]
Runtime.getRuntime().exec((String[]) command.toArray())
3
destination.withDataOutputStream { os->
source.withDataInputStream { is->
os << is
}
}
4
import java.nio.file.Files
import java.nio.file.Paths
Files.copy(Paths.get(a), Paths.get(b))
La 4ème voie semble la plus propre à moi, comme je ne suis pas sûr que c'est bon d'utiliser AntBuilder et quel poids il est, j'ai vu des gens de signaler des problèmes avec Groovy changement de version.
2ème méthode est OS dépendante, 3e pourrait ne pas être efficace.
Est-il quelque chose de Groovy pour copier des fichiers comme dans le 4ème déclaration ou dois-je simplement utiliser Java pour elle?
- La question elle-même est une bonne réponse pour "Comment copier des fichiers dans le groovy" 🙂
- J'ai eu
unable to resolve class java.nio.files.Paths
lors de l'utilisation de cette Gradle. J'utiliseimport java.nio.*
etimport java.nio.file.*
à la place. - est droit, c'est
java.nio.file.Paths
.
Vous devez vous connecter pour publier un commentaire.
Si vous avez Java 7, je serais certainement aller avec
Avec le java.nio.fichier.Chemin classe, il peut travailler avec des liens symboliques et matériels. De java.nio.fichier.Fichiers:
Tout comme les références:
Copier des fichiers d'un dossier à un autre avec Groovy
http://groovyconsole.appspot.com/view.groovy?id=8001
Mon deuxième option serait la
ant
tâche avecAntBuilder
.Si c'est un fichier texte, je voudrais aller avec:
Si vous le faites dans le code, il suffit d'utiliser quelque chose comme:
Si c'est pour construire liées au code, ce serait également le travail, ou utiliser la Fourmi builder.
Remarque, si vous êtes sûr que les fichiers sont de type texte, vous pouvez utiliser
.text
plutôt que.bytes
.new File().withStream {}
- je suis allé pour l'approche la plus simple.À ajouter au fichier existant :
À remplacer si le fichier existe :
Je suis en utilisant
AntBuilder
pour de telles tâches. C'est simple, cohérent, "bataille-preuves" et de plaisir.2ème approche est trop spécifiques aux systèmes d'exploitation (Linux uniquement dans votre cas)
3e il trop bas niveau et il mange de plus de ressources. C'est utile si vous avez besoin de pour transformer le fichier sur le chemin: modification de l'encodage par exemple
4e semble trop compliqué pour moi... NIO paquet est relativement nouveau dans le JDK.
À la fin de la journée, j'irais pour la 1ère option. De là, vous pouvez passer de
copy
àscp
tâche, sans re-développer le script à partir de presque rienJe préfère cette façon:
C'est le moyen à l'aide de plate-forme indépendante de script groovy. Si quelqu'un a des questions, veuillez demander dans les commentaires.