最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2015年05月29日 10:54:39   投稿:goldensun  
這篇文章主要介紹了Lua中的文件I/O操作教程,是Lua入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下

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

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

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

一個(gè)簡單的文件打開操作使用下面的語句。

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

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

2015529104548726.jpg (625×282)

 隱文件描述符

隱文件描述符使用標(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()沒有可選參數(shù)??蛇x參數(shù)可以是以下任意一個(gè)。

2015529104828382.jpg (629×218)

 其他常見的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)的末尾沒有關(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

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

其他常見的文件的方法包括:

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

相關(guān)文章

  • 使用Lua來擴(kuò)展C++程序的方法

    使用Lua來擴(kuò)展C++程序的方法

    這篇文章主要介紹了使用Lua來擴(kuò)展C++程序的方法,盡管更多的時(shí)候人們或許會(huì)想用C++來擴(kuò)展Lua...需要的朋友可以參考下
    2015-07-07
  • 使用Lua編寫Web端模板引擎的實(shí)例代碼分享

    使用Lua編寫Web端模板引擎的實(shí)例代碼分享

    這里我們給出一個(gè)使用Lua編寫Web端模板引擎的實(shí)例代碼分享,力求簡潔(核心代碼約為70行),僅實(shí)現(xiàn)最基本的模板功能:
    2016-06-06
  • Lua中的迭代器淺析

    Lua中的迭代器淺析

    這篇文章主要介紹了Lua中的迭代器淺析,本文先是講解了什么是迭代器,然后給出了自己寫一個(gè)迭代器的示例,最后介紹了迭代器的調(diào)用方法,需要的朋友可以參考下
    2014-09-09
  • Lua判斷數(shù)據(jù)類型的方法

    Lua判斷數(shù)據(jù)類型的方法

    這篇文章主要介紹了Lua判斷數(shù)據(jù)類型的方法,本文講解了判斷數(shù)據(jù)類型的方法和Lua腳本語言的8種基本數(shù)據(jù)類型,需要的朋友可以參考下
    2015-04-04
  • Lua腳本自動(dòng)生成APK包

    Lua腳本自動(dòng)生成APK包

    這篇文章主要介紹了Lua腳本自動(dòng)生成APK包,本文腳本適用于cocos2dx+lua的項(xiàng)目,需要的朋友可以參考下
    2015-04-04
  • Lua 學(xué)習(xí)筆記之C API 遍歷 Table實(shí)現(xiàn)代碼

    Lua 學(xué)習(xí)筆記之C API 遍歷 Table實(shí)現(xiàn)代碼

    這篇文章主要介紹了Lua 學(xué)習(xí)筆記之C API 遍歷 Table實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-12-12
  • Lua中調(diào)用C++函數(shù)實(shí)例

    Lua中調(diào)用C++函數(shù)實(shí)例

    這篇文章主要介紹了Lua中調(diào)用C++函數(shù)實(shí)例,本文是Lua和C++通信系列文章的最后一篇,需要的朋友可以參考下
    2014-09-09
  • Lua中關(guān)于元方法的一些知識(shí)點(diǎn)小結(jié)

    Lua中關(guān)于元方法的一些知識(shí)點(diǎn)小結(jié)

    這篇文章主要介紹了Lua中關(guān)于元方法的一些知識(shí)點(diǎn)小結(jié),本文講解了兩個(gè)具有不同元表的值進(jìn)行算術(shù)操作、關(guān)系類的元方法、保護(hù)元表,需要的朋友可以參考下
    2014-09-09
  • 理解Lua中的__index和__newindex

    理解Lua中的__index和__newindex

    這篇文章主要介紹了理解Lua中的__index和__newindex,本文給出了三段代碼來講解__index和__newindex,代碼中包含詳細(xì)注釋,需要的朋友可以參考下
    2015-04-04
  • C++中調(diào)用Lua函數(shù)實(shí)例

    C++中調(diào)用Lua函數(shù)實(shí)例

    這篇文章主要介紹了C++中調(diào)用Lua函數(shù)實(shí)例,本文給出了Lua和C++的代碼,并對(duì)步驟做了講解,需要的朋友可以參考下
    2014-09-09

最新評(píng)論

阳西县| 新安县| 舞阳县| 宁德市| 九江县| 安阳县| 隆回县| 苏州市| 台州市| 克东县| 都江堰市| 黄冈市| 井冈山市| 台南县| 康定县| 滦平县| 隆德县| 改则县| 乾安县| 神木县| 思茅市| 六盘水市| 茶陵县| 永顺县| 前郭尔| 门源| 蓬莱市| 临江市| 定安县| 开远市| 澄迈县| 平利县| 大竹县| 邛崃市| 阳高县| 麦盖提县| 焦作市| 赤城县| 巨野县| 蒙阴县| 宿州市|