前言#
不知道大家還記不記得我們之前總結過一個函數os.tmpname(),今天要總結的這個函數和這個函數很像,但是功能更加強大,說到這大家還記得臨時文件的作用嗎?那就是程序運行過程中,可能需要創建一個臨時文件,保存一些數據,以后再用,而創建的時候有希望一次創建成功,這就需要創建一個臨時文件,今天的函數就是這個作用。
內容#
io.tmpfile()##
- 原型:io.tmpfile()
- 解釋:返回一個臨時文件的句柄,以可寫(實際上也可讀)的方式打開并且在程序結束時自動刪除。
Usage##
- 首先新建一個文件,將文件命名為tmpfiletest.lua然后編寫如下代碼:
-- 創建并打開臨時文件
local myfile = io.tmpfile()
print("\nfile handle is:")
print(myfile)
-- 向文件中寫入內容
myfile:write("name=AlbertS\n");
myfile:write("age=22\n")
myfile:write("removed file when the program ends \n")
-- 做了許多操作之后
-- ...
-- ...
-- 移動文件指針到開頭
myfile:seek("set")
-- 讀取文件內容
local content = myfile:read("*a");
myfile:close();
print("\nfile content is:")
print(content)
-- 暫停
os.execute("pause")
- 運行結果
io_tmpfile.png
總結#
- 注意對比函數
os.tmpname()
和io.tmpfile()
的相同點和不同點,只用時候要注意,最重要的是os.tmpname()
只返回文件名,需要手動打開和關閉,而io.tmpfile()
函數實現打開和關閉都是自動的。 -
io.tmpfile()
函數打開的文件句柄一旦關閉就無法再打開了,所以在使用完畢之前切勿隨意關閉文件。