Pacrours de fichiers
Considérons un fichier avec le contenu suivant :
bonjour,monde
Ceci est un exemple
android et ios sont des systèmes efficaces
Première méthode : utiliser la méthode eachLine()
// Créer une instance de File avec le chemin spécifié
def monFichier = new File(cheminAcces)
// Parcourir chaque ligne du fichier
monFichier.eachLine { ligne ->
println ligne
}
// Résultat affiché
bonjour,monde
Ceci est un exemple
android et ios sont des systèmes efficaces
Deuxième méthode : utiliser getText() pour récupérer tout le contenu
def texte = monFichier.getText()
println texte
// Affiche le contenu intégral du fichier
Troisième méthode : utiliser readLines() pour obtenir une liste de lignes
def lignesListe = monFichier.readLines()
lignesListe.each { println it }
println "Nombre de lignes dans le fichier : " + lignesListe.size()
// Sortie identique à la méthode précédente
Quatrième méthode : lire une portion spécifique du fichier
def segment = monFichier.withReader { lecteur ->
char[] tampon = new char[15]
lecteur.read(tampon)
return new String(tampon)
}
println segment
// Affiche les 15 premiers caractères du fichier
Copei de fichiers
Implémenter une fonction pour dupliquer le contanu d'un fichier vers un autre :
def copierFichier(String source, String destination) {
def resultat = false
try {
def fichierDest = new File(destination)
if (!fichierDest.exists()) {
fichierDest.createNewFile()
}
new File(source).withReader { lecteur ->
def contenu = lecteur.readLines()
fichierDest.withWriter { ecrivain ->
contenu.each { ligne ->
ecrivain.writeLine(ligne)
}
}
}
resultat = true
} catch (IOException e) {
// Gestion des erreurs silencieuse
}
return resultat
}
Sérialisation d'objets
Persister et charger des objets depuis des fichiers :
// Sauvegarder un objet dans un fichier
def enregistrerObjet(Object objet, String cheminFichier) {
def statut = false
try {
def fichier = new File(cheminFichier)
if (!fichier.exists()) {
fichier.createNewFile()
}
fichier.withObjectOutputStream { fluxSortie ->
fluxSortie.writeObject(objet)
}
statut = true
} catch (Exception ex) {
// Exception ignorée pour simplicité
}
return statut
}
// Charger un objet depuis un fichier
def chargerObjet(String cheminFichier) {
Object resultat = null
try {
def fichier = new File(cheminFichier)
if (fichier.exists()) {
fichier.withObjectInputStream { fluxEntree ->
resultat = fluxEntree.readObject()
}
}
} catch (Exception ex) {
// Gestion des erreurs omise
}
return resultat
}
Manipulation de fichiers XML
Analyse et extraction de données à partir d'un fichier XML :
<categories type="principal">
<categorie1>Programmation</categorie1>
<categorie2>Groovy</categorie2>
<categorie3>XML</categorie3>
</categories>
Utilisation de XmlParser pour lire le fichier :
def elements = new XmlParser().parse("xmltest.xml")
println "Type de catégorie : " + elements.attribute('type')
elements.each { noeud ->
println noeud.text()
}
// Affichage
Type de catégorie : principal
Programmation
Groovy
XML