Lua 文件 I/O

Lua I/O 庫用于讀取和處理文件丁频。分為簡單模式(和C一樣)杉允、完全模式。

簡單模式(simple model)擁有一個(gè)當(dāng)前輸入文件和一個(gè)當(dāng)前輸出文件席里,并且提供針對(duì)這些文件相關(guān)的操作叔磷。

完全模式(complete model) 使用外部的文件句柄來實(shí)現(xiàn)。它以一種面對(duì)對(duì)象的形式奖磁,將所有的文件操作定義為文件句柄的方法

簡單模式在做一些簡單的文件操作時(shí)較為合適改基。但是在進(jìn)行一些高級(jí)的文件操作的時(shí)候,簡單模式就顯得力不從心咖为。例如同時(shí)讀取多個(gè)文件這樣的操作秕狰,使用完全模式則較為合適。

打開文件操作語句如下:

mode 的值有:

簡單模式

簡單模式使用標(biāo)準(zhǔn)的 I/O 或使用一個(gè)當(dāng)前輸入文件和一個(gè)當(dāng)前輸出文件躁染。

以下為 file.lua 文件代碼鸣哀,操作的文件為test.lua(如果沒有你需要?jiǎng)?chuàng)建該文件),代碼如下:

執(zhí)行以上代碼褐啡,你會(huì)發(fā)現(xiàn)诺舔,輸出了 test.ua 文件的第一行信息,并在該文件最后一行添加了 lua 的注釋。如我這邊輸出的是:

在以上實(shí)例中我們使用了 io."x" 方法低飒,其中 io.read() 中我們沒有帶參數(shù)许昨,參數(shù)可以是下表中的一個(gè):

其他的 io 方法有:

io.tmpfile():返回一個(gè)臨時(shí)文件句柄,該文件以更新模式打開褥赊,程序結(jié)束時(shí)自動(dòng)刪除

io.type(file):檢測(cè)obj是否一個(gè)可用的文件句柄

io.flush():向文件寫入緩沖中的所有數(shù)據(jù)

io.lines(optional file name):返回一個(gè)迭代函數(shù),每次調(diào)用將獲得文件中的一行內(nèi)容,當(dāng)?shù)轿募矔r(shí)糕档,將返回nil,但不關(guān)閉文件


完全模式

通常我們需要在同一時(shí)間處理多個(gè)文件。我們需要使用 file:function_name 來代替 io.function_name 方法拌喉。以下實(shí)例演示了如同同時(shí)處理同一個(gè)文件:

執(zhí)行以上代碼速那,你會(huì)發(fā)現(xiàn),輸出了 test.ua 文件的第一行信息尿背,并在該文件最后一行添加了 lua 的注釋端仰。如我這邊輸出的是:

read 的參數(shù)與簡單模式一致。

其他方法:

file:seek(optional whence, optional 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")則定位到文件尾并返回文件大小

file:flush():向文件寫入緩沖中的所有數(shù)據(jù)

io.lines(optional file name):打開指定的文件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)閉文件,如

以下實(shí)例使用了 seek 方法鹤竭,定位到文件倒數(shù)第 25 個(gè)位置并使用 read 方法的 *a 參數(shù),即從當(dāng)期位置(倒數(shù)第 25 個(gè)位置)讀取整個(gè)文件景醇。

我這邊輸出的結(jié)果是:


內(nèi)容來自:runoob.com 菜鳥教程

整理:極動(dòng)云臀稚,寧波家電物聯(lián)網(wǎng)云平臺(tái)

CONTACT US: http://www.iot-jd.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市三痰,隨后出現(xiàn)的幾起案子吧寺,更是在濱河造成了極大的恐慌,老刑警劉巖酒觅,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撮执,死亡現(xiàn)場(chǎng)離奇詭異微峰,居然都是意外死亡舷丹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門蜓肆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颜凯,“玉大人,你說我怎么就攤上這事仗扬≈⒏牛” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵早芭,是天一觀的道長彼城。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么募壕? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任调炬,我火速辦了婚禮,結(jié)果婚禮上舱馅,老公的妹妹穿的比我還像新娘缰泡。我一直安慰自己,他們只是感情好代嗤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布棘钞。 她就那樣靜靜地躺著,像睡著了一般干毅。 火紅的嫁衣襯著肌膚如雪宜猜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天硝逢,我揣著相機(jī)與錄音宝恶,去河邊找鬼。 笑死趴捅,一個(gè)胖子當(dāng)著我的面吹牛垫毙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拱绑,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼综芥,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了猎拨?” 一聲冷哼從身側(cè)響起膀藐,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎红省,沒想到半個(gè)月后额各,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吧恃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年虾啦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痕寓。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡傲醉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出呻率,到底是詐尸還是另有隱情硬毕,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布礼仗,位于F島的核電站吐咳,受9級(jí)特大地震影響逻悠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜韭脊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一蹂风、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧乾蓬,春花似錦惠啄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至死嗦,卻和暖如春趋距,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背越除。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國打工节腐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人摘盆。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓翼雀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親孩擂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子狼渊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • I/O 庫提供了兩套不同風(fēng)格的文件處理接口。 第一種風(fēng)格使用隱式的文件句柄类垦; 它提供設(shè)置默認(rèn)輸入文件及默認(rèn)輸出文件...
    chiguozi閱讀 6,636評(píng)論 1 4
  • Nginx API for Lua Introduction ngx.arg ngx.var.VARIABLE C...
    吃瓜的東閱讀 5,790評(píng)論 0 5
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程狈邑,因...
    小菜c閱讀 6,426評(píng)論 0 17
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)蚤认,斷路器米苹,智...
    卡卡羅2017閱讀 134,662評(píng)論 18 139
  • 指令集 lua_capture_error_log lua_use_default_type lua_malloc...
    吃瓜的東閱讀 12,006評(píng)論 0 2