io.input([file]) 設(shè)置默認的輸入文件,file為文件名(此時會以文本讀入)或文件句柄(可以理解為把柄,有了把柄就可以找到文件),返回文件句柄。
io.output([file]) 設(shè)置默認的輸出文件,參數(shù)意義同上。
io.close([file]) 關(guān)閉文件,不帶參數(shù)關(guān)閉默認的文件
io.read(formats) 讀入默認文件,formats取值為"*a"(讀入全部)、“*n”(按數(shù)字讀入)、 "*l"(按行讀入,默認方式)、n(即數(shù)字,讀取n個字符)。
io.lines([fn]) fn文件名,若無文件,取默認文件,返回一個迭代器,可以用在for循環(huán)里。
io.write(value)向默認文件寫入內(nèi)容。
io.flush() 把文件緩存里的操作立即作用到默認輸出文件。
------------------簡單模型-----------------
--讀
local file1=io.input("1.txt") --當(dāng)前目錄"1.txt"要存在,不然出錯
local str=io.read("*a")
print(str)
--寫
local file2=io.output("2.txt") --當(dāng)前目錄"2.txt"不需要存在
io.write(str)
io.flush()
io.close()
--利用這幾個函數(shù)可以做一個文件復(fù)制的函數(shù)
function copy(fileA,fileB)
local file1=io.input(fileA)
if not file1 then print(fileA.."不存在") return end
local str=io.read("*a")
local file2=io.output(fileB)
io.write(str)
io.flush()
io.close()
end
for line in io.lines("1.txt") do
print(line)
end
------------------完整模型-----------------
local f=io.open("3.txt","a+")
f:write("Happy New Year!")
f:flush()
f:seek("end",-1) --定位到文件末尾前一個字節(jié)
local str=f:read(1) --讀取一個字符
print(str) --輸出"!"
f:close()