Talk is cheap. Show me the code.
因为 lua 写读写操作比较麻烦,所以大致封装了一下。
读文件:
-- 读文件
-- 参数:需要读取的文件路径
-- 返回值:读出的内容,读取错误。
-- 如果没有读出内容,第一个参数为 nil,否则第二个参数为 nil
local function read_file(file_name)
if not file_name then
return nil, "missing file_name"
end
local file = io.open(file_name,'r')
if not file then
return nil, "can\'t open file \"" .. file_name .. "\""
end
local content = file:read('*all')
file:close()
return content, nil
end
写文件:
-- 写文件
-- 参数:需要写入的文件路径,写入内容
-- 返回值:写入结果
-- 如果没有写入内容,返回错误内容,否则返回 nil
local function write_file(file_name, content)
if not file_name then
return nil, "missing file_name"
end
content = content or ''
local file = io.open(file_name, "a")
if not file then
return "can\'t open file \"" .. file_name .. "\""
end
file:write(content)
file:close()
return nil
end
实战演练:
-- 读写文件演示,写入当前时间,再读取出来
ngx.say("write_file result is: ", write_file("/tmp/nowtime.log", ngx.now()))
ngx.say("result_file result is: ", read_file("/tmp/nowtime.log"))
-- 也可以这样
local content, err = read_file("/tmp/tttt.log")
if not content then
ngx.say(err)
else
ngx.say(content)
end
-- 本机不存在文件 tttt.log,所以显示:
-- can't open file "/tmp/tttt.log"
截图: