一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Lua - Lua中的文件I/O操作教程

Lua中的文件I/O操作教程

2020-05-04 12:31腳本之家 Lua

這篇文章主要介紹了Lua中的文件I/O操作教程,是Lua入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下

 Lua中I/O庫(kù)用于讀取和處理文件。有兩種類型的文件操作,在Lua即隱含文件的描述符和明確的文件描述符。

對(duì)于下面的例子中,我們將使用一個(gè)示例文件test.lua,如下圖所示。

 

復(fù)制代碼 代碼如下:
-- sample test.lua
-- sample2 test.lua

 

一個(gè)簡(jiǎn)單的文件打開(kāi)操作使用下面的語(yǔ)句。

 

復(fù)制代碼 代碼如下:
file = io.open (filename [, mode])

 

各種文件模式列示于下表中。

Lua中的文件I/O操作教程

 隱文件描述符

隱文件描述符使用標(biāo)準(zhǔn)輸入/輸出模式,或使用單輸入單輸出文件。使用隱式文件的描述符的一個(gè)示例如下所示。

 

復(fù)制代碼 代碼如下:
-- Opens a file in read
file = io.open("test.lua", "r")

 

-- sets the default input file as test.lua
io.input(file)

-- prints the first line of the file
print(io.read())

-- closes the open file
io.close(file)

-- Opens a file in append mode
file = io.open("test.lua", "a")

-- sets the default output file as test.lua
io.output(file)

-- appends a word test to the last line of the file
io.write("-- End of the test.lua file")

-- closes the open file
io.close(file)

 

當(dāng)運(yùn)行程序,會(huì)得到test.lua文件的第一行輸出。這里例子中得到了下面的輸出。

 

復(fù)制代碼 代碼如下:
-- Sample test.lua

 

這是聲明 test.lua 文件的第一行。“-- End of the test.lua file” 將被追加到test.lua代碼的最后一行

在上面的例子中可以看到隱描述與使用文件系統(tǒng)io.“×”方法是如何工作的。上面的例子使用io.read()沒(méi)有可選參數(shù)。可選參數(shù)可以是以下任意一個(gè)。

Lua中的文件I/O操作教程

 其他常見(jiàn)的IO方法包括:

  •     io.tmpfile():  返回讀寫臨時(shí)文件,一旦程序退出,文件將被刪除。
  •     io.type(file):  返回文件,關(guān)閉文件或零根據(jù)所輸入的文件。
  •     io.flush(): 清除默認(rèn)輸出緩沖器。
  •     io.lines(optional file name): 提供了一個(gè)通用的循環(huán)迭代器遍歷文件并關(guān)閉在最后的情況下提供文件名和默認(rèn)文件的文件被使用,在循環(huán)的末尾沒(méi)有關(guān)閉。

明確的文件描述符

我們經(jīng)常使用明確的文件描述符,使我們能夠在同一時(shí)間處理多個(gè)文件。這些功能都相當(dāng)相似的隱式文件描述符。在這里,我們使用的文件:函數(shù)名,而不是io.function_name。同樣地隱文件描述符例的文件版本,以下示例如下所示。

 

復(fù)制代碼 代碼如下:
-- Opens a file in read mode
file = io.open("test.lua", "r")

 

-- prints the first line of the file
print(file:read())

-- closes the opened file
file:close()

-- Opens a file in append mode
file = io.open("test.lua", "a")

-- appends a word test to the last line of the file
file:write("--test")

-- closes the open file
file:close()

 

當(dāng)運(yùn)行程序,會(huì)得到的隱含描述的例子是類似的輸出。

 

復(fù)制代碼 代碼如下:
-- Sample test.lua

 

文件打開(kāi)和參數(shù)進(jìn)行讀取外部描述的所有的模式是一樣的隱含文件的描述符。

其他常見(jiàn)的文件的方法包括:

  •     file:seek(optional whence, optional offset): 參數(shù)"set", "cur" 或 "end"。設(shè)置新的文件指針從文件的開(kāi)始更新的文件的位置。偏移量是零基礎(chǔ)的這個(gè)功能。從如果第一個(gè)參數(shù)是“set”該文件的開(kāi)始時(shí)所測(cè)的偏移量;從如果它是“cur” 文件中的當(dāng)前位置;或從該文件的結(jié)束,如果是“end”。默認(rèn)參數(shù)值是“cur”和0,因此當(dāng)前的文件位置可以通過(guò)調(diào)用不帶參數(shù)這個(gè)函數(shù)來(lái)獲得。
  •     file:flush(): 清除默認(rèn)輸出緩沖器。
  •     io.lines(optional file name): 提供了一個(gè)通用的循環(huán)迭代器遍歷文件并關(guān)閉在最后的情況下提供文件名和默認(rèn)文件的文件被使用,在循環(huán)的末尾沒(méi)有關(guān)閉。

一個(gè)例子,以使用尋求方法如下所示。offsets從25個(gè)位置的光標(biāo)之前的文件的末尾。從文件的讀出功能的打印剩余 seek 位置。

 

復(fù)制代碼 代碼如下:
-- Opens a file in read
file = io.open("test.lua", "r")

 

file:seek("end",-25)
print(file:read("*a"))

-- closes the opened file
file:close()

 

會(huì)得到類似下面的一些輸出。

 

復(fù)制代碼 代碼如下:
 sample2 test.lua
--test

 

可以使用各種不同的模式和參數(shù)了解 Lua文件操作能力。

 

延伸 · 閱讀

精彩推薦
  • LuaLua中的元方法__newindex詳解

    Lua中的元方法__newindex詳解

    這篇文章主要介紹了Lua中的元方法__newindex詳解,本文講解了查詢與更新、監(jiān)控賦值、通過(guò)table給另一個(gè)table賦值等內(nèi)容,需要的朋友可以參考下 ...

    笨木頭8872020-04-09
  • LuaLua中計(jì)算、執(zhí)行字符串中Lua代碼的方法

    Lua中計(jì)算、執(zhí)行字符串中Lua代碼的方法

    這篇文章主要介紹了Lua中計(jì)算、執(zhí)行字符串中Lua代碼的方法,類似JavaScript中eval函數(shù)的功能,在Lua中也可以實(shí)現(xiàn),需要的朋友可以參考下 ...

    腳本之家6322020-04-30
  • LuaLua簡(jiǎn)介、編譯安裝教程及變量等語(yǔ)法介紹

    Lua簡(jiǎn)介、編譯安裝教程及變量等語(yǔ)法介紹

    這篇文章主要介紹了Lua簡(jiǎn)介、編譯安裝教程及變量等語(yǔ)法介紹,本文同時(shí)講解了lua注釋語(yǔ)法、Lua命令行方式等內(nèi)容,需要的朋友可以參考下 ...

    junjie3632020-04-14
  • Lua深入探究Lua中的解析表達(dá)式

    深入探究Lua中的解析表達(dá)式

    這篇文章主要介紹了深入探究Lua中的解析表達(dá)式,對(duì)于其語(yǔ)法部分的說(shuō)明和示例都超詳細(xì),極力推薦此文!需要的朋友可以參考下 ...

    腳本之家3542020-05-05
  • LuaLua和C語(yǔ)言的交互詳解

    Lua和C語(yǔ)言的交互詳解

    這篇文章主要介紹了Lua和C語(yǔ)言的交互詳解,Lua和C語(yǔ)言通過(guò)棧完成交互,本文結(jié)合代碼實(shí)例詳細(xì)講解了交互的方法,需要的朋友可以參考下 ...

    果凍想3702020-04-14
  • LuaLua實(shí)現(xiàn)__add方法重載示例

    Lua實(shí)現(xiàn)__add方法重載示例

    這篇文章主要介紹了Lua實(shí)現(xiàn)__add方法重載示例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下 ...

    腳本之家7452020-04-24
  • LuaLua中table庫(kù)函數(shù)方法介紹

    Lua中table庫(kù)函數(shù)方法介紹

    這篇文章主要介紹了Lua中table庫(kù)函數(shù)方法介紹,本文講解了concat、insert、maxn、remove、sort、foreachi等方法,需要的朋友可以參考下 ...

    腳本之家2502020-04-17
  • LuaLua教程(二):基礎(chǔ)知識(shí)、類型與值介紹

    Lua教程(二):基礎(chǔ)知識(shí)、類型與值介紹

    這篇文章主要介紹了Lua教程(二):基礎(chǔ)知識(shí)、類型與值介紹,本文講解了Hello World程序、代碼規(guī)范、全局變量、類型與值等內(nèi)容,需要的朋友可以參考下 ...

    腳本之家5922020-04-28
主站蜘蛛池模板: 日本欧美大码a在线视频播放 | 网站色小妹 | 四虎影视884aa·com| 2022国产麻豆剧传媒古装 | 午夜a一级毛片 | 精品日本三级在线观看视频 | 欧美a一片xxxx片与善交 | 国产欧美日韩精品在线 | 成人福利在线视频免费观看 | 男女天堂| 亚洲精品老司机福利在线播放 | 国产一区视频在线免费观看 | 青青草视频破解版 | 午夜福到在线4国产 | 欧美日韩国产一区二区三区伦 | 亚州在线视频 | 午夜理论电影在线观看亚洲 | 亚州vs欧州vs日 | 精品国产乱码久久久久久人妻 | 亚洲国产在 | 给我免费观看的视频在线播放 | 操久久| 欧美日韩国产精品va | 国产一级在线观看 | 娇小老少配xxxxx性视频 | 久久国产视频网 | 久久精品国产只有精品 | 97青草香蕉依人在线播放 | 久久99精品久久久久久园产越南 | 99久久一香蕉国产线看观看 | 国产欧美精品一区二区三区–老狼 | 加勒比福利 | 国产欧美日韩不卡 | 亚洲天堂h| 四虎影院免费在线 | 午夜理论片YY4399影院 | 欧美日韩视频在线一区二区 | 99久久99热久久精品免费看 | 亚洲一二三区视频 | 黑人巨 | 狠狠色狠狠色综合婷婷tag |