首页 > 解决方案 > 在 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 位于同一目录中,它也会不断返回“未找到”。我目前正在使用带有 Love2D 引擎的 Lua。

标签: filelualove2d

解决方案


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

LÖVE 有它自己的love.filesystem. 考虑:

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

love.filesystemLÖVE 支持的平台之间的行为是一致的,简而言之,对于选定的操作,它是:

  • 文件的写入/附加路径是相对于保存目录的。
  • 首先根据保存目录解析读取路径。如果未找到任何内容,则根据爱档案的内容或(如果适用)源目录解析路径。

保存目录是供您的应用程序使用的特殊目录。如有疑问,请参阅LÖVE 的 wiki

至于为什么问题中的示例可能不起作用 - 请参阅 Egor 的评论。


推荐阅读