从Lua中的文件读取时出错

时间:2013-09-03 23:02:10

标签: 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'为零。

输入:

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

2 个答案:

答案 0 :(得分:1)

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

 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)

答案 1 :(得分:0)

io.open中包裹assert

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

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