Код IT Загрузка примера кода…

Lua main.lua
local FileFactory = {}

function FileFactory.create(filename, mode)
    local file, err = io.open(filename, mode)
    if not file then
        error("Ошибка открытия файла: " .. err)
    end
    return setmetatable({
        _file = file,
        _filename = filename,
        _mode = mode
    }, {
        __index = {
            read = function(self) return self._file:read() end,
            write = function(self, chunk) self._file:write(chunk) end,
            close = function(self) self._file:close() end
        }
    })
end

local f = FileFactory.create("test.txt", "w")
f:write("Тест")
f:close()
local FileFactory = {}

function FileFactory.create(filename, mode)
    local file, err = io.open(filename, mode)
    if not file then
        error("Ошибка открытия файла: " .. err)
    end
    return setmetatable({
        _file = file,
        _filename = filename,
        _mode = mode
    }, {
        __index = {
            read = function(self) return self._file:read() end,
            write = function(self, chunk) self._file:write(chunk) end,
            close = function(self) self._file:close() end
        }
    })
end

local f = FileFactory.create("test.txt", "w")
f:write("Тест")
f:close()