lua完整的IO模型基于文件句柄,等价于c语言中的(FILE*)
使用io.open打开一个文件,io.open("123.txt","w").一个是文件名,另一个参数为打开模式
打开模式分为以下mode:
"r": 读模式 (默认);
"w": 写模式;
"a": 添加模式;
"r+": 更新模式,所有之前的数据将被保存
"w+": 更新模式,所有之前的数据将被清除
"a+": 添加更新模式,所有之前的数据将被保存,只允许在文件尾进行添加
"b": 某些系统支持二进制方式
函数的返回表示了文件的新的句柄,若是出现错误会返回nil值
print(io.open("123.txt",r))
若123txt文件夹不存在,输出为空
当Lua遇到不期望的情况时就会抛出错误,比如:两个非数字进行相加;调用一个非函数的变量;访问表中不存在的值等。你也可以通过调用error函数显示的抛出错误,error的参数是要抛出的错误信息。
assert(a,b) a是要检查是否有错误的一个参数,b是a错误时抛出的信息。第二个参数b是可选的。
file= io.open("123.txt","r")
print(file)
输出结果:
nil
[Finished in 0.0s]
file= assert(io.open("123.txt","r"))
print(file)
输出结果:
/usr/local/bin/lua: /Users/macbook/Desktop/test.lua:1: 123.txt: No such file or directory
stack traceback:
[C]: in function 'assert'
/Users/macbook/Desktop/test.lua:1: in main chunk
[C]: ?
[Finished in 0.0s with exit code 1]