• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Lua教程-I/O文件操作

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

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



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
mac中安装lua5.1.5发布时间:2022-07-22
下一篇:
openresty(nginx)、lua、drizzle调研发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap