Lua教程-I/O文件操作

本文详细介绍了Lua语言中文件操作的方法,包括如何打开、关闭、读取和写入文件,以及常用的文件操作函数如io.open、io.close、io.read、io.write等的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lua语言也跟其他语言一样提供了对文件的操作,来看看Lua提供了那些对文件进行操作方法。

文件操作方法

操作方法说明
io.open (filename [, mode])按照指定的mode打开一个文件
io.close ([file])关闭文件,若无参数,关闭默认输出文件
io.flush ()把缓冲区的数据写入到文件中
io.input ([file])打开文件(文本模式)
io.lines ([filename])以读的方式返回一个迭代器
io.output ([file])类似于 io.input,但操作在默认输出文件上
io.read (…)相当于io.input():read
io.type (obj)检查obj是不是文件如果是打开的,则返回file,
若不是则返回"close file",如果不是文件则返回nil
io.write (…)相当于io.output():write写文件
file:close ()关闭文件
file:flush ()把缓冲区的数据写入到file中
file:lines ()返回迭代函数,每次调用返回一行数据,文件尾时返回nil,但是不关闭文件
file:read (…)按照指定格式读取文件,返回字符串或数字,读取错误返回nil,没有设置按照行读取
file:write (…)写文件,参数必须是字符串或数字
file:seek ([whence] [, offset])设置和获取当前文件位置,成功返回文件位置,失败返回nil
file:setvbuf (mode [, size])设置文件缓冲模式

下面对以上文件操作方法进行介绍,只介绍常用的一些方法。

一 、读取文件

  1. 输出文件内容
    在举例前先说说io.open的几种模式。
模式说明文件不存在时
r只读模式(默认)返回nil和错误信息
w写模式创建文件
a添加模式创建文件
r+更新模式,保存之前的数据返回nil和错误信息
w+更新模式,清除之前的数据创建文件
a+添加更新模式,保存之前的数据,在文件尾添加创建文件
  • io.open
    test.txt文件有两行数据:
hello Lua
hello Erick
file = io.open("test.txt","r")
for line in file:lines() do
    print(line)
end
io.close()
---------输出------------
hello Lua
hello Erick
  • file:lines
for line in io.lines("test.txt") do
    print(line)
end
---------输出------------
hello Lua
hello Erick
  • io.input
file = io.open("test.txt","r")
io.input(file)
print(io.read())
io.close(file)
------------输出第一行--------------
hello Lua

如果不增加io.input指定打开文件,是不能使用io.read获取文件信息的,只能用file相关方法操作。

二、写入文件

  • io.write写入文件
file = io.open("test.txt","a")
io.output(file)
io.write("\n....lua world")
io.close(file)
--------写入后输出内容------------
for line in io.lines("test.txt") do
    print(line)
end
------------输出--------------
hello Lua
hello Erick
....lua world

可以看到增加的字符串是成功的。

  • file:write
file = io.open("test.txt","a")
file:write("\n....lua world")
file:close()
file1 = io.open("test.txt" , "r")
for line in file1:lines() do
    print(line)
end
file1:close()
------------输出----------------
hello Lua
hello Erick
....lua world
....lua world

其他的方法可以自行进行验证,在这不做讲解了,希望对大家有帮助。


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科技早茶铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值