新聞中心
I/O庫提供兩種不同的方式進(jìn)行文件處理

10余年的治多網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整治多建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“治多網(wǎng)站設(shè)計(jì)”,“治多網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
1、io表調(diào)用方式:使用io表,io.open將返回指定文件的描述,并且所有的操作將圍繞這個(gè)文件描述
io表同樣提供三種預(yù)定義的文件描述io.stdin,io.stdout,io.stderr
2、文件句柄直接調(diào)用方式,即使用file:XXX()函數(shù)方式進(jìn)行操作,其中file為io.open()返回的文件句柄
多數(shù)I/O函數(shù)調(diào)用失敗時(shí)返回nil加錯(cuò)誤信息,有些函數(shù)成功時(shí)返回nil
1、io.close ([file])
功能:相當(dāng)于file:close(),關(guān)閉默認(rèn)的輸出文件
2、io.flush ()
功能:相當(dāng)于file:flush(),輸出所有緩沖中的內(nèi)容到默認(rèn)輸出文件
3、io.lines ([filename])
功能:打開指定的文件filename為讀模式并返回一個(gè)迭代函數(shù),每次調(diào)用將獲得文件中的一行內(nèi)容,當(dāng)?shù)轿募矔r(shí),將返回nil,并自動(dòng)關(guān)閉文件
若不帶參數(shù)時(shí)io.lines() <=> io.input():lines(); 讀取默認(rèn)輸入設(shè)備的內(nèi)容,但結(jié)束時(shí)不關(guān)閉文件
如:for line in io.lines("main.lua") do
print(line)
end
4、io.open (filename [, mode])
功能:按指定的模式打開一個(gè)文件,成功則返回文件句柄,失敗則返回nil+錯(cuò)誤信息
mode:
"r": 讀模式 (默認(rèn));
"w": 寫模式;
"a": 添加模式;
"r+": 更新模式,所有之前的數(shù)據(jù)將被保存
"w+": 更新模式,所有之前的數(shù)據(jù)將被清除
"a+": 添加更新模式,所有之前的數(shù)據(jù)將被保存,只允許在文件尾進(jìn)行添加
"b": 某些系統(tǒng)支持二進(jìn)制方式
5、io.output ([file])
功能:相當(dāng)于io.input,但操作在默認(rèn)輸出文件上
6、io.popen ([prog [, mode]])
功能:開始程序prog于額外的進(jìn)程,并返回用于prog的文件句柄(并不支持所有的系統(tǒng)平臺(tái))
7、io.read (...)
功能:相當(dāng)于io.input():read
8、io.tmpfile ()
功能:返回一個(gè)臨時(shí)文件句柄,該文件以更新模式打開,程序結(jié)束時(shí)自動(dòng)刪除
9、io.type (obj)
功能:檢測(cè)obj是否一個(gè)可用的文件句柄
返回:
"file":為一個(gè)打開的文件句柄
"closed file":為一個(gè)已關(guān)閉的文件句柄
nil:表示obj不是一個(gè)文件句柄
10、io.write (...)
功能:相當(dāng)于io.output():write
11、file:close()
功能:關(guān)閉文件
注:當(dāng)文件句柄被垃圾收集后,文件將自動(dòng)關(guān)閉。句柄將變?yōu)橐粋€(gè)不可預(yù)知的值
12、file:flush()
功能:向文件寫入緩沖中的所有數(shù)據(jù)
13、file:lines()
功能:返回一個(gè)迭代函數(shù),每次調(diào)用將獲得文件中的一行內(nèi)容,當(dāng)?shù)轿募矔r(shí),將返回nil,但不關(guān)閉文件
如:for line in file:lines() do body end
14、file:read(...)
功能:按指定的格式讀取一個(gè)文件,按每個(gè)格式函數(shù)將返回一個(gè)字串或數(shù)字,如果不能正確讀取將返回nil,若沒有指定格式將指默認(rèn)按行方式進(jìn)行讀取
格式:
"*n": 讀取一個(gè)數(shù)字
"*a": 從當(dāng)前位置讀取整個(gè)文件,若為文件尾,則返回空字串
"*l": [默認(rèn)]讀取下一行的內(nèi)容,若為文件尾,則返回nil
number: 讀取指定字節(jié)數(shù)的字符,若為文件尾,則返回nil;如果number為0則返回空字串,若為文件尾,則返回nil;
15、file:seek([whence][,offset])
功能:設(shè)置和獲取當(dāng)前文件位置,成功則返回最終的文件位置(按字節(jié)),失敗則返回nil加錯(cuò)誤信息
參數(shù)
whence:
"set": 從文件頭開始
"cur": 從當(dāng)前位置開始[默認(rèn)]
"end": 從文件尾開始
offset:默認(rèn)為0
不帶參數(shù)file:seek()則返回當(dāng)前位置,file:seek("set")則定位到文件頭,file:seek("end")則定位到文件尾并返回文件大小
16、file:setvbuf(mode,[,size])
功能:設(shè)置輸出文件的緩沖模式
參數(shù)
mode:
"no": 沒有緩沖,即直接輸出
"full": 全緩沖,即當(dāng)緩沖滿后才進(jìn)行輸出操作(也可調(diào)用flush馬上輸出)
"line": 以行為單位,進(jìn)行輸出(多用于終端設(shè)備)
最后兩種模式,size可以指定緩沖的大小(按字節(jié)),忽略size將自動(dòng)調(diào)整為最佳的大小
17、file:write(...)
功能:按指定的參數(shù)格式輸出文件內(nèi)容,參數(shù)必須為字符或數(shù)字,若要輸出其它值,則需通過tostring或string.format進(jìn)行轉(zhuǎn)換
網(wǎng)站欄目:Lua標(biāo)準(zhǔn)庫-輸入輸出處理(inputandoutputfacilities)
URL鏈接:http://www.dlmjj.cn/article/dpechod.html


咨詢
建站咨詢
