Elixir:
Чтение текстового файла
Как:
Вот как прочитать весь содержимое текстового файла с именем example.txt
:
File.read("example.txt")
Пример вывода, если example.txt
содержит “Hello, Elixir!”:
{:ok, "Hello, Elixir!"}
Для построчного чтения файла:
File.stream!("example.txt")
|> Enum.each(fn line -> IO.puts(line) end)
Это выведет каждую строку example.txt
в консоль.
Погружение в детали
В Elixir File.read/1
и File.stream!/1
являются типичными способами чтения текстовых файлов. Исторически потребность в чтении файлов в программировании возникает из необходимости хранить и извлекать данные. В раннем периоде компьютерной эры это делалось с помощью перфокарт или магнитных лент. Сегодня мы используем различные устройства хранения данных, такие как SSD, HDD и другие.
Альтернативой File.read/1
является File.read!/1
, которая генерирует ошибку, если что-то идет не так, вместо возвращения кортежа. Аналогично, File.stream!/1
отличается от File.stream/1
тем, что при сбое генерирует ошибку, а не возвращает кортеж с ошибкой.
Внутренняя реализация работает с двоичными данными. Текст преобразуется в двоичные данные Elixir, который занимается подлежащими байтами и кодированием.
Смотрите также:
- Официальная документация модуля
File
Elixir: https://hexdocs.pm/elixir/File.html