在Lua中从文件读取时出现错误。

我正在尝试让我的 Lua 程序从我电脑上存储的文件中读取。我使用了这个代码:

function readFile(file)
    local file = io.open(file,"rb")
    local content = file:read("*all")
    file:close()
    return content

当我尝试运行时,出现了这个错误:

lua: io.lua:3: attempt to index local 'file' (a nil value)
stack traceback:
    io.lua:3: in main chunk
    [C]: ?
exit code: 1

我找到了解决原问题的方法,但是当我运行脚本时,它报告变量“constant”为 nil。

输入:

function readFile(filename)
    local file = io.open(filename,"rb")
    local content = file:read("*a")
    file:close()
    return content
end

readFile("test.txt")
print(content)

输出:

lua -e "io.stdout:setvbuf 'no'" "io.lua"
nil
Exit code: 0
点赞
用户2633423
用户2633423

assert 中包装 io.open

local file = assert( io.open(file,"rb") )

这将展示由底层操作系统生成的错误(如果有的话)。

2013-09-03 23:09:44
用户1009479
用户1009479

使用不同于函数参数的本地名称。

function readFile(filename)
 local file = io.open(filename, “rb”)

更新

在您的编辑之后,仍存在一个问题:

readFile("test.txt")
print(content)

您正在打印全局变量 content,它是 nil,您想要的是:

print(readFile("test.txt"))

或者:

local content = readFile("test.txt")
print(content)
2013-09-03 23:27:53