Lua 拒绝从文件中读取

我打出我的代码并不指望一次就能成功,当然了,它失败了。我不断调整它,但最终得到的结果一直都是一样的,直到我把它简化为尽可能简单的形式。

local file = io.open("文件名", "r")
io.output(file)

local test = io.read('*all')

io.close(file)
print(test)

在得到这个结果(无返回值)后,我决定休息一下,让别人来回答我的问题。

原文链接 https://stackoverflow.com/questions/69853458

点赞
stackoverflow用户2858170
stackoverflow用户2858170

问题在于你尝试从被定义为输入文件的任何地方读取内容。你只打开了一个文件,但没有告诉 Lua 使用它作为输入文件,因此 io.read 不会从已打开的文件中读取。

local file = io.open(filename, "r")
local test = file:read("a")
io.close(file)
print(test)

或者:

local file = io.open(filename, "r")
io.input(file)
local test = io.read("a")
io.close(file)
print(test)

或者

local file = io.open(filename, "r")
local test = io.input(file):read("a")
io.close(file)
print(test)

当然,在使用文件句柄之前应该检查打开文件是否成功。

根据你的 Lua 版本,读取格式可能是 *aa,我不能记得哪个在所有版本中都可以。至少手册上是这样说的。

2021-11-05 13:00:18