Fichiers en Ruby

Introduction à la classe File

La classe File est essentielle pour la manipulation des objets fichiers en Ruby. Elle permet de créer, ouvrir, lire et écrire des fichiers avec une grande flexibilité.

Créer un nouveau fichier

Pour créer un nouvel objet de type fichier, on utilise la méthode .new() en fournissant :

  • Un nom de fichier sous forme de chaîne.
  • Un mode qui indique les opérations autorisées sur ce fichier.

Voici les modes les plus couramment utilisés :

| Mode | Description | |------|-------------| | r | Lecture : Ouvre le fichier à partir du début. | | r+ | Lecture et écriture : Ouvre le fichier à partir du début. | | w | Écriture : Efface le contenu existant et ouvre le fichier à partir du début. | | w+ | Lecture et écriture : Écrase l'ancien contenu ou crée un nouveau fichier. | | a | Ajout (écriture seule) : Commence l'écriture à la fin du fichier existant ou crée un nouveau fichier. | | a+ | Ajout (lecture et écriture) : Lit et/ou écrit à partir de la fin du fichier existant ou en crée un nouveau. |

Voici un exemple de création d'un fichier :

example_file = File.new("exampleFile.txt", "w")
puts example_file  # Affiche : #

Ouvrir et fermer un fichier

Pour ouvrir un fichier, on emploie la méthode .open() :

File.open("exampleFile.txt", "r")

Après utilisation, il est crucial de fermer le fichier avec .close :

example_file.close

En utilisant .open() avec un bloc do...end, le fichier se ferme automatiquement à la fin du bloc :

File.open("exampleFile.txt", "w+") do |f|
  # opérations sur le fichier
end

Lire et écrire dans un fichier

La classe File, étant reliée à la classe IO, permet de lire et d'écrire des fichiers, mais il est primordial d'ouvrir le fichier avant de commencer ces opérations, et de le fermer par la suite.

Pour écrire dans un fichier, utilisez le mode w :

example_file = File.open("exampleFile.txt", "w")
File.write("exampleFile.txt", "Ceci est un texte.")
example_file.close

Pour lire un fichier déjà ouvert, utilisez le mode r :

example_file = File.open("exampleFile.txt", "r")
puts example_file.read  # Affiche : Ceci est un texte.
example_file.close