Opérations de fichiers en Groovy

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

Étiquettes: Groovy file-io xml-parsing serialization

Publié le 13 juin à 00h24