【问题标题】:Read whole file and print in lua读取整个文件并在 lua 中打印
【发布时间】:2015-06-21 05:56:49
【问题描述】:

我是 Lua 的完全初学者,对 C# 仅有一点经验。

目前我正在使用 ZeroBrane Studio 作为 IDE。我正在尝试读取文件并将整个文件打印到控制台,如下所示:

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

print(readAll("test.txt"))

但我在第 8 行遇到错误,即 local content = f:read("*all") 并带有以下消息:attempt to index local 'f' (a nil value)

我的代码有什么问题?我在这里明确没有使用行迭代器。

顺便说一句。我还尝试通过复制粘贴来使用这些答案:How to read data from a file in Lua

Reading whole files in Lua

但没有运气

【问题讨论】:

  • 您引用的第二个答案提到应该将错误处理添加到代码中......

标签: lua


【解决方案1】:

错误信息表示文件不存在或无法打开。

使用local f = assert(io.open(file, "rb")) 查看您遇到了什么错误。

local f, err = io.open(file, "rb"),如果f == nil,则打印或处理err

【讨论】:

  • 嗨,是的,当我检查 IO 文档时,我还考虑过文件不存在,它指出不存在的文件将返回 nil 等。我只是用 assert() 确认了它,但文件存在.我创建了它并在里面写了一些行。 text.txt 和我的 lua 脚本在同一个目录中。 lua 看起来在不同的地方吗??
  • @sceiler,Lua脚本所在的地方不一定是应用的当前目录。我不知道 ZeroBrane 是做什么的。如果可能,请尝试从命令行运行您的脚本。
  • 谢谢,就是这样。我没想到,真丢人。现在完全好了。顺便提一句。 ZeroBrane Studio 是一个用于 lua 脚本的 IDE。类似于 Eclipse、Netbeans 和 VisualStudio。您可以像 exe 一样运行脚本。对习惯VisualStudio的我真的很有帮助
猜你喜欢
  • 2012-05-10
  • 1970-01-01
  • 1970-01-01
  • 2021-04-02
  • 2014-09-12
  • 2020-11-30
  • 1970-01-01
  • 2020-05-31
  • 1970-01-01
相关资源
最近更新 更多