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]) |
设置文件缓冲模式 |
下面对以上文件操作方法进行介绍,只介绍常用的一些方法。
一 、读取文件
- 输出文件内容
在举例前先说说io.open的几种模式。
模式 |
说明 |
文件不存在时 |
r |
只读模式(默认) |
返回nil和错误信息 |
w |
写模式 |
创建文件 |
a |
添加模式 |
创建文件 |
r+ |
更新模式,保存之前的数据 |
返回nil和错误信息 |
w+ |
更新模式,清除之前的数据 |
创建文件 |
a+ |
添加更新模式,保存之前的数据,在文件尾添加 |
创建文件 |
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
for line in io.lines("test.txt") do
print(line)
end
---------输出------------
hello Lua
hello Erick
file = io.open("test.txt","r")
io.input(file)
print(io.read())
io.close(file)
------------输出第一行--------------
hello Lua
如果不增加io.input指定打开文件,是不能使用io.read获取文件信息的,只能用file相关方法操作。
二、写入文件
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 = 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
其他的方法可以自行进行验证,在这不做讲解了,希望对大家有帮助。
|
请发表评论