Dosya G / Ç İşlemleri

Program sona erdiğinde bir programın çıktısını depolamak için dosyalara ihtiyacımız var. Dosyaları kullanarak, farklı dillerdeki çeşitli komutları kullanarak ilgili bilgilere erişebiliriz.

İşte bir dosya üzerinde gerçekleştirilebilecek bazı işlemlerin listesi -

  • Yeni bir dosya oluşturmak
  • Mevcut bir dosyayı açmak
  • Dosya içeriğini okuma
  • Bir dosyada veri arama
  • Yeni bir dosyaya yazmak
  • İçeriği mevcut bir dosyaya güncelleme
  • Bir dosyayı silme
  • Bir dosyayı kapatmak

Bir Dosyaya Yazmak

İçeriği bir dosyaya yazmak için önce gerekli dosyayı açmamız gerekecek. Belirtilen dosya yoksa, yeni bir dosya oluşturulacaktır.

C ++ kullanarak içeriğin bir dosyaya nasıl yazılacağını görelim.

Misal

#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 dosya okuma / yazma işlemlerini kontrol etmek için kullanılan akış sınıfıdır.

  • ofstream içeriği dosyaya yazmak için kullanılan akış sınıfıdır.

İşlevsel bir programlama dili olan Erlang kullanarak bir dosyaya nasıl içerik yazılacağını görelim.

-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 -

  • Kullanmamız gereken bir dosyayı açmak için, open(filename,mode).

  • İçeriği dosyaya yazmak için sözdizimi: write(filemode,file_content).

Output - Bu kodu çalıştırdığımızda "Dosyaya içerik yazılıyor" dosyaya yazılacak Tempfile.txt. Dosyada mevcut herhangi bir içerik varsa, üzerine yazılacaktır.

Dosyadan Okuma

Bir dosyadan okumak için önce belirtilen dosyayı şurada açmalıyız reading mode. Dosya yoksa, ilgili yöntemi NULL döndürür.

Aşağıdaki program, bir dosyanın içeriğinin nasıl okunacağını gösterir. 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; 
}

Aşağıdaki çıktıyı üretecektir -

Writing contents to file

Note- Bu programda “ios :: in” kullanarak okuma modunda bir metin dosyası açtık ve ardından içeriğini ekrana yazdırdık. Kullandıkwhile "getline" yöntemini kullanarak dosya içeriğini satır satır okumak için döngü yapın.

Aşağıdaki program aynı işlemin nasıl yapılacağını gösterir. Erlang. Burada kullanacağızread_file(filename) belirtilen dosyadan tüm içeriği okuma yöntemi.

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

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

Aşağıdaki çıktıyı üretecektir -

ok, Writing contents to file

Varolan bir Dosyayı Silme

Dosya işlemlerini kullanarak mevcut bir dosyayı silebiliriz. Aşağıdaki program mevcut bir dosyanın nasıl silineceğini gösterirusing 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; 
}

Aşağıdaki çıktıyı üretecektir -

file deleted successfully

Aşağıdaki program, aynı işlemi nasıl yapabileceğinizi gösterir. Erlang. Burada yöntemi kullanacağızdelete(filename) mevcut bir dosyayı silmek için.

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

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

Output - “Tempfile.txt” dosyası varsa, silinecektir.

Bir Dosyanın Boyutunu Belirleme

Aşağıdaki program, C ++ kullanarak bir dosyanın boyutunu nasıl belirleyebileceğinizi göstermektedir. Burada işlevfseek akışla ilişkili konum göstergesini yeni bir konuma ayarlar, oysa ftell akıştaki geçerli konumu döndürür.

#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 - “Tempfile.txt” dosyası varsa, boyutunu bayt olarak gösterecektir.

Aşağıdaki program aynı işlemi Erlang'da nasıl yapabileceğinizi göstermektedir. Burada yöntemi kullanacağızfile_size(filename) dosyanın boyutunu belirlemek için.

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

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

Output- “Tempfile.txt” dosyası varsa, boyutunu bayt olarak gösterecektir. Aksi takdirde, "0" gösterecektir.