Lua:
Чтение текстового файла
Как:
Давайте посмотрим, как читать текстовый файл построчно, а затем целиком.
-- Чтение файла построчно
local file = io.open("example.txt", "r") -- Открыть файл для чтения
if file then
for line in file:lines() do -- Итерирование по каждой строке в файле
print(line)
end
file:close() -- Всегда закрывайте файл, когда закончите
else
print("Не могу открыть файл.")
end
-- Чтение всего файла за один раз
local file = io.open("example.txt", "r") -- Открыть файл для чтения
if file then
local content = file:read("*a") -- Прочитать весь контент
print(content)
file:close() -- Закрыть файл
else
print("Не могу открыть файл.")
end
Пример вывода для обоих фрагментов, если example.txt
содержит:
Привет, Lua!
Вывод будет:
Привет, Lua!
Погружение в тему
Исторически чтение файлов является фундаментальной операцией, уходящей корнями к первым компьютерам. В Lua это обрабатывается через простую модель ввода-вывода с библиотекой io
.
Хотя io.lines
и io.read
являются общепринятыми способами доступа к содержимому файла, существуют альтернативы, такие как lfs
(LuaFileSystem) для продвинутых операций с файлами.
При чтении Lua обрабатывает буферизацию за кулисами, но для больших файлов следует читать частями, чтобы избежать высокого использования памяти.
Использование библиотеки io
просто, но всегда помните о необходимости закрывать файлы, чтобы предотвратить утечки ресурсов. При ошибке операции с файлами Lua возвращают nil
и сообщение об ошибке, с которыми следует обращаться для надежности.