Talk is cheap. Show me the code.
因?yàn)?lua 寫讀寫操作比較麻煩汗销,所以大致封裝了一下馁启。
讀文件:
-- 讀文件
-- 參數(shù):需要讀取的文件路徑
-- 返回值:讀出的內(nèi)容,讀取錯(cuò)誤秋秤。
-- 如果沒(méi)有讀出內(nèi)容椭符,第一個(gè)參數(shù)為 nil薯演,否則第二個(gè)參數(shù)為 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
寫文件:
-- 寫文件
-- 參數(shù):需要寫入的文件路徑跟伏,寫入內(nèi)容
-- 返回值:寫入結(jié)果
-- 如果沒(méi)有寫入內(nèi)容丢胚,返回錯(cuò)誤內(nèi)容,否則返回 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
實(shí)戰(zhàn)演練:
-- 讀寫文件演示受扳,寫入當(dāng)前時(shí)間携龟,再讀取出來(lái)
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
-- 本機(jī)不存在文件 tttt.log,所以顯示:
-- can't open file "/tmp/tttt.log"
截圖: