lua文件读写

"r" 读模式 (默认) 返回nil加错误信息
"w" 写模式 创建文件
"a" 添加模式 创建文件
"r+" 更新模式,保存之前的数据 返回nil加错误信息
"w+" 更新模式,清除之前的数据 创建文件
"a+" 添加更新模式,保存之前的数据,在文件尾进行添加 创建文件

模式字符串后面可以有一个'b',用于在某些系统中打开二进制文件。
注意 "w" 和 "wb" 的区别
“w”表示文本文件。某些文件系统(如 Linux的文件系统)认为0x0A为文本文件的换行符,Windows的文件系统认为0x0D0A为文本文件的换行符。为了兼容其他文件系统(如从Linux拷贝来的文件),Windows的文件系统在写文件时,会在文件中0x0A的前面加上0x0D。使用“w”,其属性要看所在的平台。
“wb”表示二进制文件。文件系统会按纯粹的二进制格式进行写操作,因此也就不存在格式转换的问题。(Linux文件系统下“w”和“wb”没有区别)


local function read_file(filename)
local file = io.input(filename)
local line = ""
while(true)do
line = io.read() --逐行读取内容,文件结束时返回nil
if nil == line then
break
end
print(line)
end
io.close(file)
end

local function read_file2(filename)
local file = io.open(filename, "r") --使用io.open()函数,以只读模式打开文件
for line in file:lines() do --使用file:lines()函数逐行读取文件
print(line)
end
file:close()
end

local filename = "test1.txt"
read_file(filename)
print("-----------------------")

local file = io.open("test1.txt", "a+") --使用io.open()函数,以添加模式打开文件
io.output(file) --使用io.output()函数,设置默认输出文件
io.write("\ndef") --使用io.write()函数,把内容写到文件
io.close(file)

read_file2(filename)

abc
-----------------------
abc
def
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Lua是一种轻量级的脚本语言,因其简单易学、灵活高效而广泛应用于游戏开发和嵌入式系统。在Lua中,读INI文件可以通过库函数实现。 要读取INI文件,可以使用Lua的io库中的open函数打开文件,然后通过读取每一行的方式来解析INI文件的内容。在解析每一行时,可以通过检测方括号([])来确定INI文件中的段落,将段落作为表的键,然后将每个键值对都保存到表中。 在Lua中,可以使用字符串函数来处理INI文件中的每一行。通过查找等号(=)来确定键值对的分隔,然后使用sub函数来提取键和值。接下来,将键和值插入到表中,可以使用table.insert函数或直接通过索引赋值的方式实现。 要入INI文件,首先需要创建一个新的文件,可以使用io.open函数打开文件,并指定"w"模式。然后,可以通过table来保存要入INI文件的内容。可以将INI文件内容存储在一个Lua的表中,每个键将作为表的一个索引,对应的值将作为表的元素存储。 为了将表中的数据入INI文件,可以使用io.write函数将每个键值对格式化为字符串,并使用"\n"换行符将每一行数据文件。最后,使用io.close函数关闭文件。 总之,Lua可以通过io库中的函数实现INI文件的读。对于读取INI文件,可以使用open函数打开文件,然后解析每一行的内容并保存到表中。对于入INI文件,可以使用write函数将表中的数据格式化为字符串,并将数据入到文件中。 ### 回答2: Lua是一种脚本语言,具有简单、高效的特点,因此在读ini文件方面也有很好的支持。 在Lua中,我们可以使用io库来读文件。下面是一个简单的示例,演示了如何使用Lua读取ini文件中的数据: ```lua -- 打开文件 local file = io.open("config.ini", "r") -- 定义一个空表来存储ini文件中的数据 local configData = {} -- 逐行读取文件 for line in file:lines() do -- 忽略注释行和空行 if not line:match("^%s*[;%[]") then -- 使用等号将每行的key和value分隔开 local key, value = line:match("^%s*(.-)%s*=%s*(.-)%s*$") -- 将key和value存入configData表中 if key and value then configData[key] = value end end end -- 关闭文件 file:close() -- 输出读取到的ini文件数据 for key, value in pairs(configData) do print(key, value) end ``` 上述代码首先使用io库中的`io.open`函数打开了一个名为"config.ini"的ini文件,并以只读模式打开。然后,通过使用文件对象的`lines`方法,我们可以逐行读取文件内容。每行我们都会进行一些处理,如忽略注释行和空行。对于非注释行,我们使用正则表达式将每行的key和value分隔开,并将其存入一个名为configData的表中。最后,通过遍历configData表,我们可以输出读取到的ini文件数据。 在入ini文件方面,Lua也有很好的支持。我们可以使用io库的文件入功能来实现。下面是一个简单的示例,演示了如何使用Lua将数据入ini文件中: ```lua -- 定义需要入的数据 local configData = { key1 = "value1", key2 = "value2", key3 = "value3" } -- 打开文件 local file = io.open("config.ini", "w") -- 遍历configData表,将数据文件 for key, value in pairs(configData) do file:write(key .. " = " .. value .. "\n") end -- 关闭文件 file:close() ``` 上述代码首先定义了一个名为configData的表,其中包含了要入config.ini文件的数据。然后,我们通过使用`io.open`函数以模式打开了文件。接下来,通过遍历configData表,将每个key和value以key = value的形式文件,并添加换行符。最后,使用`file:close()`方法关闭文件。 总结起来,Lua中通过使用io库来读ini文件是相对简单的。对于读取,我们可以使用文件对象的`lines`方法逐行读取文件内容,并根据需要提取出key和value。对于入,我们可以使用文件对象的`write`方法将key和value文件。 ### 回答3: Lua 是一种通用的轻量级脚本语言,常用于嵌入式系统和游戏开发中。在 Lua 中读 ini 文件可以通过使用一些库函数实现。 对于读取 ini 文件,可以使用 Lua 的 io 库函数来打开 ini 文件并逐行读取其中的内容。可以使用 io.open() 函数打开 ini 文件,并使用 io.lines() 函数来逐行读取文件内容。然后可以使用字符串操作函数来解析 ini 文件中的键值对。 对于入 ini 文件,可以使用 io 库函数来创建一个新的 ini 文件,并使用 io.write() 函数来入内容。可以先将需要入的键值对进行组装,然后使用 io.write() 函数将其入 ini 文件中。 以下是一个简单的示例,演示了如何读 ini 文件: 读取 ini 文件: ```lua local filename = "config.ini" local file = io.open(filename, "r") if file then for line in file:lines() do -- 解析 line 中的键值对 end file:close() end ``` 入 ini 文件: ```lua local filename = "config.ini" local file = io.open(filename, "w") if file then -- 组装要入的键值对 local content = "[Section]\nKey=Value" -- 将 content 入 ini 文件 file:write(content) file:close() end ``` 请注意,在实际应用中,还需要考虑更多的细节,比如处理注释、空行和特殊字符等。同时,也可以使用第三方库来简化 ini 文件的读操作,比如 lua-ini。这个库提供了更丰富的功能和更方便的接口来读 ini 文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值