Love2D 中读取 txt 文件遇到的问题

我正在尝试在 Lua 中从 txt 文件中读取内容,如下所示(main.lua):

local function read_file(filename)
    contents = io.open(filename, "r")
    if contents == nil then
        return false
    else
        io.close(contents)
        return true
    end
end

if read_file("myfile.txt") then
    print("Yes")
else
    print("Not found")
end

但是,即使 myfile.txt 与 main.lua 在同一个目录下,它仍然返回“Not found”的结果。我当前在使用 Love2D 引擎。

点赞
用户4567755
用户4567755

虽然你可能会尝试在 LÖVE 中使用 Lua 的 io,但我建议不要这样做。

LÖVE 有它自己的 love.filesystem。考虑以下代码:

if love.filesystem.getInfo("myfile.txt") then
   print("Yes")
   print(love.filesystem.read("myfile.txt"))
else
   print("Not found")
end

在 LÖVE 支持的各个平台上,love.filesystem 的行为是一致的,简而言之,对于选定的操作:

  • 写入/ 追加 - 文件路径相对于“保存目录”。
  • 读取 - 路径首先相对于“保存目录”解析。如果找不到任何内容,则将路径解析为“love”存档或(如果适用)源目录的内容。

“保存目录”是您的应用程序专用的特殊目录。如果有疑问,请参阅 LÖVE 的维基页面

至于为什么题目中的示例可能无法正常工作,请参见 Egor 的评论。

2020-01-03 11:05:24