记录学习过程
创建日期:2019-04-14
Lua文件操作
Lua I/O库用于对文件进行读取和写入操作
分为简单模式和完全模式
模式 | 操作对象 | 同一时间操作文件数量 | 方法 |
简单模式 | IO | 一个 | io.function_name |
完全模式 | 文件 | 多个 | file:function_name |
简单模式,以IO为对象进行文件操作,同一时间只能操作一个文件,使用io.function_name
完全模式,以文件为对象进行文件操作,同一时间可操作多个文件,使用file:function_name
input和output,输入输出是相当程序而言,输入指的是文件内容输入到程序中,而输出指的是程序输出内容到文件中
打开文件操作
file = io.open(filename[, mode])
mode的值
值 | 描述 |
r | 只读,文件必须存在 |
w | 只写,若文件存在,文件内容会清空;文件不存在则创建文件 |
a | 追加,文件不存在则创建文件 |
r+ | 可读可写,文件必须存在 |
w+ | 可读可写,若文件存在,文件内容会清空;文件不存在则创建文件 |
a+ | 与a类似,可读可写 |
b | 二进制模式 |
+ | 表示可读可写 |
简单模式
文件读取
file =io.open("data.txt","r")
io.input(file)
print(io.read())--读取一行
io.close(file)
打开文件后一定要进行关闭操作,表示文件使用完毕,以防出现一些未知的错误,因为文件可能被多个程序或用户使用
read() 的参数
值 | 描述 |
“*l” | 默认参数,从当前位置读取一行 |
“*n” | 从当前位置读取一个数字并返回 |
“*a” | 从当前位置读取整个文件 |
number | 从当前位置返回指定字符个数的字符串 |
文件写入
file = io.open("data1.txt","w")
io.output(file)
io.write("haha")
io.close()
完全模式
文件读取
file =io.open("data.txt","r")
print(file:read())
file:close(file)
文件写入
file = io.open("data1.txt","w")
file:write("haha")
file:close()
file:seek(wherce,offset) 设置和获取当前文件位置 ,成功返回文件位置,失败返回nil加错误信息
whence的值
值 | 描述 |
“set” | 从文件头开始 |
“cur” | 从当前位置开始 |
“end” | 从文件尾开始 |
offset默认为0
print(file:seek("set",10)) -- 设置文件位置为从文件头开始第10个字节
print(file:seek())--返回当前文件位置
print(file:seek(“end”))--设置文件位置为文件尾并返回文件大小