前言#
不知道大家還記不記得我們之前總結(jié)過一個(gè)函數(shù)os.tmpname()赂鲤,今天要總結(jié)的這個(gè)函數(shù)和這個(gè)函數(shù)很像噪径,但是功能更加強(qiáng)大柱恤,說到這大家還記得臨時(shí)文件的作用嗎?那就是程序運(yùn)行過程中找爱,可能需要?jiǎng)?chuàng)建一個(gè)臨時(shí)文件梗顺,保存一些數(shù)據(jù),以后再用车摄,而創(chuàng)建的時(shí)候有希望一次創(chuàng)建成功寺谤,這就需要?jiǎng)?chuàng)建一個(gè)臨時(shí)文件,今天的函數(shù)就是這個(gè)作用吮播。
內(nèi)容#
io.tmpfile()##
- 原型:io.tmpfile()
- 解釋:返回一個(gè)臨時(shí)文件的句柄变屁,以可寫(實(shí)際上也可讀)的方式打開并且在程序結(jié)束時(shí)自動(dòng)刪除。
Usage##
- 首先新建一個(gè)文件意狠,將文件命名為tmpfiletest.lua然后編寫如下代碼:
-- 創(chuàng)建并打開臨時(shí)文件
local myfile = io.tmpfile()
print("\nfile handle is:")
print(myfile)
-- 向文件中寫入內(nèi)容
myfile:write("name=AlbertS\n");
myfile:write("age=22\n")
myfile:write("removed file when the program ends \n")
-- 做了許多操作之后
-- ...
-- ...
-- 移動(dòng)文件指針到開頭
myfile:seek("set")
-- 讀取文件內(nèi)容
local content = myfile:read("*a");
myfile:close();
print("\nfile content is:")
print(content)
-- 暫停
os.execute("pause")
- 運(yùn)行結(jié)果
io_tmpfile.png
總結(jié)#
- 注意對(duì)比函數(shù)
os.tmpname()
和io.tmpfile()
的相同點(diǎn)和不同點(diǎn)粟关,只用時(shí)候要注意,最重要的是os.tmpname()
只返回文件名环戈,需要手動(dòng)打開和關(guān)閉闷板,而io.tmpfile()
函數(shù)實(shí)現(xiàn)打開和關(guān)閉都是自動(dòng)的。 -
io.tmpfile()
函數(shù)打開的文件句柄一旦關(guān)閉就無法再打開了院塞,所以在使用完畢之前切勿隨意關(guān)閉文件蛔垢。