Операции ввода-вывода файла

Нам нужны файлы для хранения результатов программы, когда программа завершается. Используя файлы, мы можем получить доступ к соответствующей информации, используя различные команды на разных языках.

Вот список некоторых операций, которые можно выполнить с файлом:

  • Создание нового файла
  • Открытие существующего файла
  • Чтение содержимого файла
  • Поиск данных в файле
  • Запись в новый файл
  • Обновление содержимого в существующий файл
  • Удаление файла
  • Закрытие файла

Запись в файл

Чтобы записать содержимое в файл, нам сначала нужно открыть нужный файл. Если указанный файл не существует, то будет создан новый файл.

Давайте посмотрим, как записать содержимое в файл, используя C ++.

пример

#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; 
} 

Примечание -

  • fstream - это класс потока, используемый для управления операциями чтения / записи файла.

  • ofstream - это класс потока, используемый для записи содержимого в файл.

Давайте посмотрим, как записать содержимое в файл, используя Erlang , который является функциональным языком программирования.

-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"). 

Примечание -

  • Чтобы открыть файл, который мы должны использовать, откройте (имя файла, режим) .

  • Синтаксис для записи содержимого в файл: write (filemode, file_content) .

Вывод. Когда мы запустим этот код, «Запись содержимого в файл» будет записана в файл Tempfile.txt . Если файл имеет какой-либо существующий контент, он будет перезаписан.

Чтение из файла

Для чтения из файла сначала необходимо открыть указанный файл в режиме чтения . Если файл не существует, его соответствующий метод возвращает NULL .

Следующая программа показывает, как читать содержимое файла в 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; 
} 

Это даст следующий результат -

Writing contents to file 

Примечание. В этой программе мы открыли текстовый файл в режиме чтения, используя «ios :: in», а затем распечатали его содержимое на экране. Мы использовали цикл while для чтения содержимого файла построчно с помощью метода «getline».

Следующая программа показывает, как выполнить ту же операцию, используя Erlang . Здесь мы будем использовать метод read_file (filename), чтобы прочитать все содержимое из указанного файла.

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

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

Это даст следующий результат -

ok, Writing contents to file 

Удалить существующий файл

Мы можем удалить существующий файл, используя файловые операции. Следующая программа показывает, как удалить существующий файл с помощью 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; 
}   

Это даст следующий результат -

file deleted successfully 

Следующая программа показывает, как вы можете выполнить ту же операцию в Erlang . Здесь мы будем использовать метод delete (имя файла), чтобы удалить существующий файл.

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

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

Вывод. Если файл «Tempfile.txt» существует, он будет удален.

Определение размера файла

Следующая программа показывает, как вы можете определить размер файла с помощью C ++. Здесь функция fseek устанавливает индикатор позиции, связанный с потоком, на новую позицию, тогда как ftell возвращает текущую позицию в потоке.

#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; 
}    

Вывод. Если файл «Tempfile.txt» существует, он покажет свой размер в байтах.

Следующая программа показывает, как вы можете выполнить ту же операцию в Erlang . Здесь мы будем использовать метод file_size (filename), чтобы определить размер файла.

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

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

Вывод. Если файл «Tempfile.txt» существует, он покажет свой размер в байтах. В противном случае будет отображаться «0».