持久化数据,是每一个私服开发者必须会的,前面已经说了lua 表数据与字符串互转,那么本篇文章就可以通过此来实现数据的持久化!

打开文件

file = io.open (filename,mode)
mode值描述
r以只读方式打开文件,该文件必须存在。
w打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
a以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
r+以可读写方式打开文件,该文件必须存在。
w+打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a+与a类似,但此文件可读可写
b二进制模式,如果文件是二进制文件,可以加上b
+号表示对文件既可以读也可以写

读取文件

-- 系统提供的方法IO.xxx
file =io.open("d://nihao.txt","r")
-- 声明接下来的io操作都是file
io.input(file)
print(io.read()) --读取一行
print(io.read()) --读取第二行 如果第二行没有就会输出 nil
-- 关闭操作文件
io.close(file)

读取完毕,如果不写入的话,需要关闭文件

-- 关闭打开的文件
file:close()

写文件

-- 写入操作
file1 = io.open("d://nihao.txt","a")
io.output(file1)
io.write("www.baidu.com")
io.write("\n")
-- io.flush()
io.close(file1)

案例

-- 读取文件  
    local f = assert(io.open(fileName,'r'))
    local content = f:read('*all')
    f:close()

-- 写文件
    local f = assert(io.open(fileName,'w'))
    f:write(content)
    f:close()