记录学习过程

创建日期: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”))--设置文件位置为文件尾并返回文件大小