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

Lua文件讀寫詳解

 更新時(shí)間:2015年04月20日 11:29:42   投稿:junjie  
這篇文章主要介紹了Lua文件讀寫詳解,本文講解了文件讀寫的簡(jiǎn)單模型和完整模型,并給出了一個(gè)操作示例,需要的朋友可以參考下

lua里的文件讀寫模型來(lái)自C語(yǔ)言,分為完整模型(和C一樣)、簡(jiǎn)單模型。

1、簡(jiǎn)單模型

io.input([file])  設(shè)置默認(rèn)的輸入文件,file為文件名(此時(shí)會(huì)以文本讀入)或文件句柄(可以理解為把柄,有了把柄就可以找到文件),返回文件句柄。
io.output([file])  設(shè)置默認(rèn)的輸出文件,參數(shù)意義同上。
io.close([file]) 關(guān)閉文件,不帶參數(shù)關(guān)閉默認(rèn)的文件
io.read(formats) 讀入默認(rèn)文件,formats取值為"*a"(讀入全部)、“*n”(按數(shù)字讀入)、 "*l"(按行讀入,默認(rèn)方式)、n(即數(shù)字,讀取n個(gè)字符)。
io.lines([fn]) fn文件名,若無(wú)文件,取默認(rèn)文件,返回一個(gè)迭代器,可以用在for循環(huán)里。
io.write(value)向默認(rèn)文件寫入內(nèi)容。
io.flush() 把文件緩存里的操作立即作用到默認(rèn)輸出文件。

例子在最后。

2、完整模型

簡(jiǎn)單模型里只能處理文本類型的文件,在完整模型里可以處理二進(jìn)制文件。

處理文件的一般流程為:打開(kāi)文件,獲取文件的句柄;以文件句柄操作文件;關(guān)閉文件。

可以看到完整模型比簡(jiǎn)單模型復(fù)雜點(diǎn),但優(yōu)點(diǎn)是功能更強(qiáng)大。

io.open (fn [, m]) 打開(kāi)文件,返回文件句柄,fn文件名,m模式有:
r 以只讀方式打開(kāi)文件,該文件必須存在。
w 打開(kāi)只寫文件,若文件存在則文件長(zhǎng)度清為0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。
a 以附加的方式打開(kāi)只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。(EOF符保留)
r+ 以可讀寫方式打開(kāi)文件,該文件必須存在。
w+ 打開(kāi)可讀寫文件,若文件存在則文件長(zhǎng)度清為零,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。
a+ 與a類似,但此文件可讀可寫
b 二進(jìn)制模式,如果文件是二進(jìn)制文件,可以加上b
+ 號(hào)表示對(duì)文件既可以讀也可以寫
以下的file是io.open返回的文件句柄,功能與簡(jiǎn)單模式類似,不再詳述。
file :close ()
file :read ( formats )
file :lines ()
file :write ( values )
file :seek ([p] [, of]) 設(shè)置文件讀寫的偏移,p文件偏移起始位置(取值有"set",文件頭,此為默認(rèn)值,"cur"當(dāng)前位置、"end"文件尾),of偏移量(默認(rèn)值0,正的表示向前,負(fù)的表示向后),返回在文件里新的當(dāng)前位置。
file :flush ()

3、示例

復(fù)制代碼 代碼如下:

------------------簡(jiǎn)單模型-----------------
--讀
local file1=io.input("1.txt")  --當(dāng)前目錄"1.txt"要存在,不然出錯(cuò)
local str=io.read("*a")
print(str)
--寫
local file2=io.output("2.txt") --當(dāng)前目錄"2.txt"不需要存在
io.write(str)
io.flush()
io.close()

--利用這幾個(gè)函數(shù)可以做一個(gè)文件復(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) --定位到文件末尾前一個(gè)字節(jié)
local str=f:read(1) --讀取一個(gè)字符
print(str) --輸出"!"
f:close()

相關(guān)文章

  • 在Mac OS中安裝Lua的教程

    在Mac OS中安裝Lua的教程

    這篇文章主要介紹了在Mac OS中安裝Lua的教程,盡管基于Unix的Mac OS并沒(méi)有集成Lua解釋器,但安裝起來(lái)依然super easy:)需要的朋友可以參考下
    2015-07-07
  • Lua中的協(xié)同程序探究

    Lua中的協(xié)同程序探究

    這篇文章主要介紹了Lua中的協(xié)同程序探究,本文講解了什么是協(xié)同程序、創(chuàng)建協(xié)同程序、更像樣的協(xié)同程序、讓協(xié)同程序掛起、resume操作的返回值,需要的朋友可以參考下
    2014-09-09
  • vs2012 error c4996: This function or variable may be unsafe

    vs2012 error c4996: This function or variable may be unsafe

    這篇文章主要介紹了vs2012 error c4996: This function or variable may be unsafe,需要的朋友可以參考下
    2015-04-04
  • Lua性能優(yōu)化技巧(五):削減、重用和回收

    Lua性能優(yōu)化技巧(五):削減、重用和回收

    這篇文章主要介紹了Lua性能優(yōu)化技巧(五):削減、重用和回收,本文用多個(gè)實(shí)例講解了這三個(gè)優(yōu)化技巧,需要的朋友可以參考下
    2015-04-04
  • 如何使用Vim搭建Lua開(kāi)發(fā)環(huán)境詳解

    如何使用Vim搭建Lua開(kāi)發(fā)環(huán)境詳解

    這篇文章主要給大家介紹了關(guān)于如何使用Vim搭建Lua開(kāi)發(fā)環(huán)境的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Lua中ipair和pair的區(qū)別

    Lua中ipair和pair的區(qū)別

    這篇文章主要介紹了Lua中ipair和pair的區(qū)別,ipair和pair都是用來(lái)遍歷table用的,需要的朋友可以參考下
    2014-09-09
  • 在Lua中使用模塊的基礎(chǔ)教程

    在Lua中使用模塊的基礎(chǔ)教程

    這篇文章主要介紹了在Lua中模塊的基本使用方法,是Lua入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • openresty中使用lua-nginx創(chuàng)建socket實(shí)例

    openresty中使用lua-nginx創(chuàng)建socket實(shí)例

    這篇文章主要介紹了openresty中使用lua-nginx創(chuàng)建socket實(shí)例,本文直接給出代碼實(shí)例和運(yùn)行效果,需要的朋友可以參考下
    2015-04-04
  • Lua中的metatable詳解

    Lua中的metatable詳解

    這篇文章主要介紹了Lua中的metatable詳解,本文詳細(xì)講解了metatable的作用、定義操作符行為、為 Lua 函數(shù)庫(kù)提供支持等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • Lua中的loadfile、dofile、loadstring、require用法實(shí)例

    Lua中的loadfile、dofile、loadstring、require用法實(shí)例

    這篇文章主要介紹了Lua中的loadfile、dofile、loadstring、require用法實(shí)例,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

汽车| 镇远县| 稻城县| 四会市| 子洲县| 大丰市| 温宿县| 遂平县| 揭东县| 巨鹿县| 本溪市| 贵南县| 钟山县| 孝感市| 奉新县| 大埔县| 丰城市| 达州市| 永顺县| 沈阳市| 太原市| 通榆县| 拜城县| 雷波县| 周至县| 洛扎县| 巴塘县| 沈丘县| 阿拉善右旗| 靖边县| 邹城市| 文化| 马龙县| 安丘市| 新宁县| 姚安县| 介休市| 墨江| 临江市| 油尖旺区| 沂源县|