偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

用 Lua 操作文件中的數(shù)據(jù)

開發(fā) 后端
當(dāng)你編程時(shí),無(wú)論是簡(jiǎn)單的腳本還是復(fù)雜的工具套件,通常都需要讀取和寫入文件。有時(shí)文件可能包含配置選項(xiàng),而另一些時(shí)候這個(gè)文件是你的用戶用你的應(yīng)用創(chuàng)建的數(shù)據(jù)。每種語(yǔ)言都會(huì)以不同的方式處理這項(xiàng)任務(wù),本文將演示如何使用 Lua 處理文件數(shù)據(jù)。

[[391246]]

了解 Lua 如何處理數(shù)據(jù)的讀寫。

有些數(shù)據(jù)是臨時(shí)的,存儲(chǔ)在 RAM 中,只有在應(yīng)用運(yùn)行時(shí)才有意義。但有些數(shù)據(jù)是要持久的,存儲(chǔ)在硬盤上供以后使用。當(dāng)你編程時(shí),無(wú)論是簡(jiǎn)單的腳本還是復(fù)雜的工具套件,通常都需要讀取和寫入文件。有時(shí)文件可能包含配置選項(xiàng),而另一些時(shí)候這個(gè)文件是你的用戶用你的應(yīng)用創(chuàng)建的數(shù)據(jù)。每種語(yǔ)言都會(huì)以不同的方式處理這項(xiàng)任務(wù),本文將演示如何使用 Lua 處理文件數(shù)據(jù)。

安裝 Lua

如果你使用的是 Linux,你可以從你的發(fā)行版軟件庫(kù)中安裝 Lua。在 macOS 上,你可以從 MacPorts 或 Homebrew 安裝 Lua。在 Windows 上,你可以從 Chocolatey 安裝 Lua。

安裝 Lua 后,打開你最喜歡的文本編輯器并準(zhǔn)備開始。

用 Lua 讀取文件

Lua 使用 io 庫(kù)進(jìn)行數(shù)據(jù)輸入和輸出。下面的例子創(chuàng)建了一個(gè)名為 ingest 的函數(shù)來(lái)從文件中讀取數(shù)據(jù),然后用 :read 函數(shù)進(jìn)行解析。在 Lua 中打開一個(gè)文件時(shí),有幾種模式可以啟用。因?yàn)槲抑恍枰獜倪@個(gè)文件中讀取數(shù)據(jù),所以我使用 r(代表“讀”)模式:

  1. function ingest(file)
  2.    local f = io.open(file, "r")
  3.    local lines = f:read("*all")
  4.    f:close()
  5.    return(lines)
  6. end
  7.  
  8. myfile=ingest("example.txt")
  9. print(myfile)

在這段代碼中,注意到變量 myfile 是為了觸發(fā) ingest 函數(shù)而創(chuàng)建的,因此,它接收該函數(shù)返回的任何內(nèi)容。ingest 函數(shù)返回文件的行數(shù)(從一個(gè)稱為 lines 的變量中0。當(dāng)最后一步打印 myfile 變量的內(nèi)容時(shí),文件的行數(shù)就會(huì)出現(xiàn)在終端中。

如果文件 example.txt 中包含了配置選項(xiàng),那么我會(huì)寫一些額外的代碼來(lái)解析這些數(shù)據(jù),可能會(huì)使用另一個(gè) Lua 庫(kù),這取決于配置是以 INI 文件還是 YAML 文件或其他格式存儲(chǔ)。如果數(shù)據(jù)是 SVG 圖形,我會(huì)寫額外的代碼來(lái)解析 XML,可能會(huì)使用 Lua 的 SVG 庫(kù)。換句話說(shuō),你的代碼讀取的數(shù)據(jù)一旦加載到內(nèi)存中,就可以進(jìn)行操作,但是它們都需要加載 io 庫(kù)。

用 Lua 將數(shù)據(jù)寫入文件

無(wú)論你是要存儲(chǔ)用戶用你的應(yīng)用創(chuàng)建的數(shù)據(jù),還是僅僅是關(guān)于用戶在應(yīng)用中做了什么的元數(shù)據(jù)(例如,游戲保存或最近播放的歌曲),都有很多很好的理由來(lái)存儲(chǔ)數(shù)據(jù)供以后使用。在 Lua 中,這是通過(guò) io 庫(kù)實(shí)現(xiàn)的,打開一個(gè)文件,將數(shù)據(jù)寫入其中,然后關(guān)閉文件:

  1. function exgest(file)
  2.    local f = io.open(file, "a")
  3.    io.output(f)
  4.    io.write("hello world\n")
  5.    io.close(f)
  6. end
  7.  
  8. exgest("example.txt")

為了從文件中讀取數(shù)據(jù),我以 r 模式打開文件,但這次我使用 a (用于”追加“)將數(shù)據(jù)寫到文件的末尾。因?yàn)槲沂菍⒓兾谋緦懭胛募?,所以我添加了自己的換行符(/n)。通常情況下,你并不是將原始文本寫入文件,你可能會(huì)使用一個(gè)額外的庫(kù)來(lái)代替寫入一個(gè)特定的格式。例如,你可能會(huì)使用 INI 或 YAML 庫(kù)來(lái)幫助編寫配置文件,使用 XML 庫(kù)來(lái)編寫 XML,等等。

文件模式

在 Lua 中打開文件時(shí),有一些保護(hù)措施和參數(shù)來(lái)定義如何處理文件。默認(rèn)值是 r,允許你只讀數(shù)據(jù):

  • r 只讀
  • w 如果文件不存在,覆蓋或創(chuàng)建一個(gè)新文件。
  • r+ 讀取和覆蓋。
  • a 追加數(shù)據(jù)到文件中,或在文件不存在的情況下創(chuàng)建一個(gè)新文件。
  • a+ 讀取數(shù)據(jù),將數(shù)據(jù)追加到文件中,或文件不存在的話,創(chuàng)建一個(gè)新文件。

還有一些其他的(例如,b 代表二進(jìn)制格式),但這些是最常見的。關(guān)于完整的文檔,請(qǐng)參考 Lua.org/manual 上的優(yōu)秀 Lua 文檔。

Lua 和文件

和其他編程語(yǔ)言一樣,Lua 有大量的庫(kù)支持來(lái)訪問(wèn)文件系統(tǒng)來(lái)讀寫數(shù)據(jù)。因?yàn)?Lua 有一個(gè)一致且簡(jiǎn)單語(yǔ)法,所以很容易對(duì)任何格式的文件數(shù)據(jù)進(jìn)行復(fù)雜的處理。試著在你的下一個(gè)軟件項(xiàng)目中使用 Lua,或者作為 C 或 C++ 項(xiàng)目的 API。 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2023-02-06 09:34:00

JavaHutool操作文件

2010-03-23 15:52:43

Python操作文件

2009-12-16 11:04:51

Ruby操作文件權(quán)限

2010-06-03 13:55:38

Hbase和Hadoo

2011-12-29 09:03:14

VIM

2011-08-23 17:06:03

2010-03-18 17:43:46

python 編程語(yǔ)言

2009-10-29 17:15:26

VB.NET控件

2009-08-19 17:44:15

C#操作文本文件

2009-08-20 09:15:20

C#操作文本文件

2009-08-20 10:17:27

C#操作文本文件

2010-03-22 16:57:18

密碼文件數(shù)據(jù)庫(kù)密碼安全

2010-01-11 17:05:32

VB.NET操作文本文

2009-08-20 09:58:06

C#操作文本文件

2011-08-23 14:33:51

Lua捕獲字符串

2011-08-24 17:09:35

LUA閉包函數(shù)

2020-11-05 08:56:19

Python

2022-12-06 11:57:54

Lua參數(shù)

2012-11-23 16:46:12

LinuxVim

2009-08-20 09:26:14

C#操作文本文件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)