Unetway

Erlang - Файловый ввод-вывод

Erlang предоставляет ряд методов при работе с I / O. Он имеет более простые классы для предоставления следующих функций для файлов:

  • Чтение файлов
  • Запись в файлы
  • Увидеть, является ли файл файлом или каталогом

Методы работы файлов в Erlang

Давайте рассмотрим некоторые из файловых операций, которые может предложить Erlang. Для целей этих примеров мы будем предполагать, что есть файл под названием NewFile.txt, который содержит следующие строки текста

Example1

Example2

Example3

Этот файл будет использоваться для операций чтения и записи в следующих примерах.

Чтение содержимого файла по одной строке за раз

Общие операции с файлами выполняются с использованием методов, доступных в библиотеке файлов. Для чтения файлов нам нужно сначала использовать операцию open, а затем использовать операцию чтения, которая доступна как часть библиотеки файлов. Ниже приведен синтаксис для обоих этих методов.

Синтаксис:

  • Open file - Открыть (File, Mode)
  • Read file - Чтение (FileHandler, NumberofBytes)

Параметры:

  • File. Это местоположение файла, который нужно открыть.
  • Mode  - это режим, в котором файл должен быть открыт.

Ниже приведены некоторые из доступных режимов:

  • Read  . Файл, который должен существовать, открывается для чтения.
  • Write  . Файл открывается для записи. Он создается, если он не существует. Если файл существует, и если запись не объединена с чтением, файл будет усечен.
  • Append - файл будет открыт для записи, и он будет создан, если он не существует. Каждая операция записи в файл, открытый с помощью append, будет иметь место в конце файла.
  • Exclusive . Файл, когда он открыт для записи, создается, если он не существует. Если файл существует, open вернет {error, exist}.
  • FileHandler - это дескриптор файла. Этот дескриптор - тот, который будет возвращен при использовании файла: openoperation.
  • NumberofByte - это количество байтов информации, которое необходимо прочитать из файла.

Возвращаемое значение:

  • Open(File,Mode)  Возвращает дескриптор файла, если операция выполнена успешно.
  • read(FileHandler,NumberofBytes)- возвращает запрашиваемую информацию из файла.
-module(helloworld). 
-export([start/0]). 

start() -> 
   {ok, File} = file:open("Newfile.txt",[read]),
   Txt = file:read(File,1024 * 1024), 
   io:fwrite("~p~n",[Txt]).
file_read Доступно для чтения всего содержимого файла за один раз.
write Используется для записи содержимого в файл.
copy используется для создания копии существующего файла.
delete Этот метод используется для удаления существующего файла.
list_dir Этот метод используется для перечисления содержимого конкретного каталога.
make_dir Этот метод используется для создания нового каталога.
rename Этот метод используется для переименования существующего файла.
file_size Этот метод используется для определения размера файла.
is_file Этот метод используется для определения того, действительно ли файл является файлом.
is_dir Этот метод используется для определения того, действительно ли каталог является каталогом.