Opérations d'E / S de fichier

Nous avons besoin de fichiers pour stocker la sortie d'un programme lorsque le programme se termine. À l'aide de fichiers, nous pouvons accéder aux informations associées à l'aide de diverses commandes dans différentes langues.

Voici une liste de quelques opérations pouvant être effectuées sur un fichier -

  • Créer un nouveau fichier
  • Ouvrir un fichier existant
  • Lire le contenu du fichier
  • Recherche de données sur un fichier
  • Ecrire dans un nouveau fichier
  • Mettre à jour le contenu d'un fichier existant
  • Supprimer un fichier
  • Fermer un dossier

Écrire dans un fichier

Pour écrire le contenu dans un fichier, nous devons d'abord ouvrir le fichier requis. Si le fichier spécifié n'existe pas, un nouveau fichier sera créé.

Voyons comment écrire du contenu dans un fichier en utilisant C ++.

Exemple

#include <iostream> 
#include <fstream> 
using namespace std;  

int main () {   
   ofstream myfile; 
   myfile.open ("Tempfile.txt", ios::out); 
   myfile << "Writing Contents to file.\n"; 
   cout << "Data inserted into file"; 
   myfile.close(); 
   return 0; 
}

Note -

  • fstream est la classe de flux utilisée pour contrôler les opérations de lecture / écriture de fichiers.

  • ofstream est la classe de flux utilisée pour écrire le contenu dans le fichier.

Voyons comment écrire du contenu dans un fichier en utilisant Erlang, qui est un langage de programmation fonctionnel.

-module(helloworld).  
-export([start/0]).   

start() ->
   {ok, File1} = file:open("Tempfile.txt", [write]),  
   file:write(File1,"Writting contents to file"), 
   io:fwrite("Data inserted into file\n").

Note -

  • Pour ouvrir un fichier, nous devons utiliser, open(filename,mode).

  • Syntaxe pour écrire le contenu dans le fichier: write(filemode,file_content).

Output - Lorsque nous exécutons ce code, «Ecrire le contenu dans un fichier» sera écrit dans le fichier Tempfile.txt. Si le fichier a un contenu existant, il sera écrasé.

Lecture à partir d'un fichier

Pour lire à partir d'un fichier, nous devons d'abord ouvrir le fichier spécifié dans reading mode. Si le fichier n'existe pas, sa méthode respective renvoie NULL.

Le programme suivant montre comment lire le contenu d'un fichier dans C++ -

#include <iostream> 
#include <fstream> 
#include <string> 
using namespace std;  

int main () {
   string readfile; 
   ifstream myfile ("Tempfile.txt",ios::in); 
   
   if (myfile.is_open()) {     
      while ( getline (myfile,readfile) ) {       
         cout << readfile << '\n'; 
      } 
      myfile.close(); 
   } else  
      cout << "file doesn't exist";  
   return 0; 
}

Il produira la sortie suivante -

Writing contents to file

Note- Dans ce programme, nous avons ouvert un fichier texte en mode lecture en utilisant «ios :: in», puis nous avons imprimé son contenu à l'écran. Nous avons utiliséwhile loop pour lire le contenu du fichier ligne par ligne en utilisant la méthode «getline».

Le programme suivant montre comment effectuer la même opération en utilisant Erlang. Ici, nous utiliserons leread_file(filename) méthode pour lire tout le contenu du fichier spécifié.

-module(helloworld).  
-export([start/0]).   

start() ->  
   rdfile = file:read_file("Tempfile.txt"),  
   io:fwrite("~p~n",[rdfile]).

Il produira la sortie suivante -

ok, Writing contents to file

Supprimer un fichier existant

Nous pouvons supprimer un fichier existant à l'aide d'opérations sur les fichiers. Le programme suivant montre comment supprimer un fichier existantusing C++ -

#include <stdio.h> 

int main () {   
   if(remove( "Tempfile.txt" ) != 0 ) 
      perror( "File doesn’t exist, can’t delete" ); 
   else 
      puts( "file deleted successfully " ); 
   return 0; 
}

Il produira la sortie suivante -

file deleted successfully

Le programme suivant montre comment vous pouvez effectuer la même opération dans Erlang. Ici, nous utiliserons la méthodedelete(filename) pour supprimer un fichier existant.

-module(helloworld).  
-export([start/0]).   

start() ->  
   file:delete("Tempfile.txt").

Output - Si le fichier «Tempfile.txt» existe, il sera supprimé.

Déterminer la taille d'un fichier

Le programme suivant montre comment vous pouvez déterminer la taille d'un fichier à l'aide de C ++. Ici, la fonctionfseek définit l'indicateur de position associé au flux sur une nouvelle position, tandis que ftell renvoie la position actuelle dans le flux.

#include <stdio.h> 

int main () {  
   FILE * checkfile; 
   long size; 
   checkfile = fopen ("Tempfile.txt","rb"); 
   
   if (checkfile == NULL)  
      perror ("file can’t open"); 
   else {   
      fseek (checkfile, 0, SEEK_END);    // non-portable 
      size = ftell (checkfile); 
      fclose (checkfile); 
      printf ("Size of Tempfile.txt: %ld bytes.\n",size); 
   } 
   return 0; 
}

Output - Si le fichier «Tempfile.txt» existe, il affichera sa taille en octets.

Le programme suivant montre comment vous pouvez effectuer la même opération dans Erlang. Ici, nous utiliserons la méthodefile_size(filename) pour déterminer la taille du fichier.

-module(helloworld).  
-export([start/0]).   

start() ->  
   io:fwrite("~w~n",[filelib:file_size("Tempfile.txt")]).

Output- Si le fichier «Tempfile.txt» existe, il affichera sa taille en octets. Sinon, il affichera «0».