萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> Lua中的文件I/O操作教程

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

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

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

  對於下面的例子中,我們將使用一個示例文件test.lua,如下圖所示。

  代碼如下:

  -- sample test.lua

  -- sample2 test.lua

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

   代碼如下:

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

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

2015529104548726.jpg (625×282)

  隱文件描述符

  隱文件描述符使用標准輸入/輸出模式,或使用單輸入單輸出文件。使用隱式文件的描述符的一個示例如下所示。

   代碼如下:

  -- 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)

  當運行程序,會得到test.lua文件的第一行輸出。這裡例子中得到了下面的輸出。

   代碼如下:

  -- Sample test.lua

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

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

2015529104828382.jpg (629×218)

  其他常見的IO方法包括:

  io.tmpfile(): 返回讀寫臨時文件,一旦程序退出,文件將被刪除。

  io.type(file): 返回文件,關閉文件或零根據所輸入的文件。

  io.flush(): 清除默認輸出緩沖器。

  io.lines(optional file name): 提供了一個通用的循環迭代器遍歷文件並關閉在最後的情況下提供文件名和默認文件的文件被使用,在循環的末尾沒有關閉。

  明確的文件描述符

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

   代碼如下:

  -- 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()

  當運行程序,會得到的隱含描述的例子是類似的輸出。

   代碼如下:

  -- Sample test.lua

  文件打開和參數進行讀取外部描述的所有的模式是一樣的隱含文件的描述符。

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

  file:seek(optional whence, optional offset): 參數"set", "cur" 或 "end"。設置新的文件指針從文件的開始更新的文件的位置。偏移量是零基礎的這個功能。從如果第一個參數是“set”該文件的開始時所測的偏移量;從如果它是“cur” 文件中的當前位置;或從該文件的結束,如果是“end”。默認參數值是“cur”和0,因此當前的文件位置可以通過調用不帶參數這個函數來獲得。

  file:flush(): 清除默認輸出緩沖器。

  io.lines(optional file name): 提供了一個通用的循環迭代器遍歷文件並關閉在最後的情況下提供文件名和默認文件的文件被使用,在循環的末尾沒有關閉。

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

   代碼如下:

  -- 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()

  會得到類似下面的一些輸出。

   代碼如下:

  sample2 test.lua

  --test

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

copyright © 萬盛學電腦網 all rights reserved