Lua 筆記 Lua 檔案 I O

2021-10-09 07:55:24 字數 2515 閱讀 6426

目錄

lua 檔案 i/o

簡單模式

完全模式

簡單模式(****** model)

擁有乙個當前輸入檔案和乙個當前輸出檔案,並且提供針對這些檔案相關的操作

完全模式(complete model)

使用外部的檔案控制代碼來實現。它以一種面對物件的形式,將所有的檔案操作定義為檔案控制代碼的方法

開啟檔案操作語句如下:

file = io.open (filename [, mode])
r

以唯讀方式開啟檔案,該檔案必須存在。

w開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。

a以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。(eof符保留)

r+以可讀寫方式開啟檔案,該檔案必須存在。

w+開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

a+與a類似,但此檔案可讀可寫

b二進位制模式,如果檔案是二進位制檔案,可以加上b

+號表示對檔案既可以讀也可以寫

-- 以唯讀方式開啟檔案

file = io.open("test.lua", "r")

-- 設定預設輸入檔案為 test.lua

io.input(file)

-- 輸出檔案第一行

print(io.read())

-- 關閉開啟的檔案

io.close(file)

-- 以附加的方式開啟只寫檔案

file = io.open("test.lua", "a")

-- 設定預設輸出檔案為 test.lua

io.output(file)

-- 在檔案最後一行新增 lua 注釋

io.write("-- test.lua 檔案末尾注釋")

-- 關閉開啟的檔案

io.close(file)

輸出:-- test.lua 檔案

模式

描述"*n"

讀取乙個數字並返回它。例:file.read("*n")

"*a"

從當前位置讀取整個檔案。例:file.read("*a")

"*l"(預設)

number

返回乙個指定字元個數的字串,或在 eof 時返回 nil。例:file.read(5)

io.tmpfile()

返回乙個臨時檔案控制代碼,該檔案以更新模式開啟,程式結束時自動刪除

io.type(file):

檢測obj是否乙個可用的檔案控制代碼

io.flush():

向檔案寫入緩衝中的所有資料

io.lines(optional file name)

返回乙個迭代函式,每次呼叫將獲得檔案中的一行內容,當到檔案尾時,將返回nil,但不關閉檔案

-- 以唯讀方式開啟檔案

file = io.open("test.lua", "r")

-- 輸出檔案第一行

print(file:read())

-- 關閉開啟的檔案

file:close()

-- 以附加的方式開啟只寫檔案

file = io.open("test.lua", "a")

-- 在檔案最後一行新增 lua 注釋

file:write("--test")

-- 關閉開啟的檔案

file:close()

-- test.lua 檔案

file:seek(optional whence, optional offset)

file:flush()

io.lines(optional file name)

for line in io.lines("main.lua") do

print(line)

end

-- 以唯讀方式開啟檔案

file = io.open("test.lua", "r")

file:seek("end",-25)

print(file:read("*a"))

-- 關閉開啟的檔案

file:close()

我這邊輸出的結果是:

st.lua 檔案末尾--test

lua菜鳥教程 Lua 檔案 I O

lua 檔案 i o lua i o 庫用於讀取和處理檔案。分為簡單模式 和c一樣 完全模式。簡單模式 model 擁有乙個當前輸入檔案和乙個當前輸出檔案,並且提供針對這些檔案相關的操作。完全模式 complete model 使用外部的檔案控制代碼來實現。它以一種面對物件的形式,將所有的檔案操作定...

lua基礎 五 I O檔案操作

lua檔案操作相關i o 可以規定在特定目錄下開啟乙個檔案,如果該檔案不存在的話,lua會幫助我們在你規定的目錄下建立這個檔案,前提是該目錄要存在 同時我們應該掌握寫入檔案的模式 對以下寫入模式進行說明 r 模式 讀模式 該模式下,只允許對檔案進行讀取內容,不容許寫入 w 寫模式 允許對檔案進行寫入...

Lua學習筆記 lua堆疊

首先了解一下c 與lua之間的通訊 假設在乙個lua檔案中有如下定義 hello.lua檔案 請注意紅色數字,代表通訊順序 1 c 想獲取lua的myname字串的值,所以它把myname放到lua堆疊 棧頂 以便lua能看到 2 lua從堆疊 棧頂 中獲取myname,此時棧頂再次變為空 3 lu...