Programmation D - E / S fichier

Les fichiers sont représentés par la structure File du module std.stdio. Un fichier représente une séquence d'octets, peu importe qu'il s'agisse d'un fichier texte ou d'un fichier binaire.

Le langage de programmation D permet d'accéder aux fonctions de haut niveau ainsi qu'aux appels de bas niveau (au niveau du système d'exploitation) pour gérer les fichiers sur vos périphériques de stockage.

Ouverture de fichiers en D

Les flux d'entrée et de sortie standard stdin et stdout sont déjà ouverts lorsque les programmes commencent à s'exécuter. Ils sont prêts à être utilisés. En revanche, les fichiers doivent d'abord être ouverts en spécifiant le nom du fichier et les droits d'accès nécessaires.

File file = File(filepath, "mode");

Ici, filename est une chaîne littérale, que vous utilisez pour nommer le fichier et accéder mode peut avoir l'une des valeurs suivantes -

N ° Sr. Mode et description
1

r

Ouvre un fichier texte existant à des fins de lecture.

2

w

Ouvre un fichier texte pour l'écriture, s'il n'existe pas, un nouveau fichier est créé. Ici, votre programme commencera à écrire du contenu depuis le début du fichier.

3

a

Ouvre un fichier texte pour l'écriture en mode ajout, s'il n'existe pas, un nouveau fichier est créé. Ici, votre programme commencera à ajouter du contenu dans le contenu du fichier existant.

4

r+

Ouvre un fichier texte pour lire et écrire les deux.

5

w+

Ouvre un fichier texte pour lire et écrire les deux. Il tronque d'abord le fichier à une longueur nulle s'il existe, sinon crée le fichier s'il n'existe pas.

6

a+

Ouvre un fichier texte pour lire et écrire les deux. Il crée le fichier s'il n'existe pas. La lecture commencera par le début mais l'écriture ne peut être ajoutée.

Fermer un fichier en D

Pour fermer un fichier, utilisez la fonction file.close () où file contient la référence de fichier. Le prototype de cette fonction est -

file.close();

Tout fichier qui a été ouvert par un programme doit être fermé lorsque le programme a fini d'utiliser ce fichier. Dans la plupart des cas, les fichiers n'ont pas besoin d'être fermés explicitement; ils sont fermés automatiquement lorsque les objets File sont terminés.

Ecrire un fichier en D

file.writeln est utilisé pour écrire dans un fichier ouvert.

file.writeln("hello");

import std.stdio; 
import std.file;
  
void main() { 
   File file = File("test.txt", "w"); 
   file.writeln("hello");
   file.close(); 
}

Lorsque le code ci-dessus est compilé et exécuté, il crée un nouveau fichier test.txt dans le répertoire dans lequel il a été démarré (dans le répertoire de travail du programme).

Lire un fichier en D

La méthode suivante lit une seule ligne à partir d'un fichier -

string s = file.readln();

Un exemple complet de lecture et d'écriture est présenté ci-dessous.

import std.stdio; 
import std.file; 
 
void main() { 
   File file = File("test.txt", "w");
   file.writeln("hello");  
   file.close(); 
   file = File("test.txt", "r"); 
   
   string s = file.readln(); 
   writeln(s);
   
   file.close(); 
}

Lorsque le code ci-dessus est compilé et exécuté, il lit le fichier créé dans la section précédente et produit le résultat suivant -

hello

Voici un autre exemple de lecture de fichier jusqu'à la fin du fichier.

import std.stdio;
import std.string;

void main() { 
   File file = File("test.txt", "w");  
   file.writeln("hello"); 
   file.writeln("world");  
   file.close();  
   file = File("test.txt", "r"); 
    
   while (!file.eof()) { 
      string line = chomp(file.readln()); 
      writeln("line -", line); 
   }
}

Lorsque le code ci-dessus est compilé et exécuté, il lit le fichier créé dans la section précédente et produit le résultat suivant -

line -hello 
line -world 
line -

Vous pouvez voir dans l'exemple ci-dessus une troisième ligne vide puisque writeln la prend à la ligne suivante une fois qu'elle est exécutée.