File io Lua不生成函数表(IO API)
我在Lua做一个基础项目。我一直试图使用File io Lua不生成函数表(IO API),file-io,lua,lua-table,File Io,Lua,Lua Table,我在Lua做一个基础项目。我一直试图使用IOAPI(定义)从文件中获取数据,但是当我打开一个文件并给它一个句柄时,它似乎没有返回函数表 代码的(错误位): 您在第一行看到的fs是IO API的专业文件系统包装器,不是我的作品,完全没有错误,所以这不是问题所在。但是,当我尝试读取文件(handle:read())时,它抛出“尝试索引nil”。跟踪它,结果是handle本身是nil。有什么想法吗?io.open成功时返回一个文件句柄,失败时返回nil并显示错误消息(根据Lua参考手册)。这意味着您确
IO
API(定义)从文件中获取数据,但是当我打开一个文件并给它一个句柄时,它似乎没有返回函数表
代码的(错误位):
您在第一行看到的
fs
是IO API的专业文件系统包装器,不是我的作品,完全没有错误,所以这不是问题所在。但是,当我尝试读取文件(handle:read()
)时,它抛出“尝试索引nil”。跟踪它,结果是handle
本身是nil
。有什么想法吗?io.open成功时返回一个文件句柄,失败时返回nil并显示错误消息(根据Lua参考手册)。这意味着您确实应该使用
handle, err = io.open(file, 'r')
if handle == nil then
print('could not open file:', file, ':', err)
return
end
local text = handle:read("*a")
...
错误消息将告诉您是否没有读取该文件的权限,或者是否存在其他问题 尝试
打印(文件)
以查看它是否只是文件名或文件的整个路径。由于@hjpotter92指示文件
是否为有效路径,则句柄
应为非零,前提是您有权读取该文件。如果路径不正确或不完整(例如相对于fs.list
调用中给出的路径),则在尝试打开文件之前,您需要修复fs
库或构造正确的绝对或相对路径。@hjpotter92喜欢这个想法,我会看一看。我以为我走的路是对的,但没有意识到如果我走错了,它会把事情搞得一团糟。
handle, err = io.open(file, 'r')
if handle == nil then
print('could not open file:', file, ':', err)
return
end
local text = handle:read("*a")
...