Lua读取文件之前不打印输出。

我有一个问题无法让 Lua 在打开和读取文件之前打印内容。这将打印字符串"Reading File..."和"File Read!",但仅在完成 getFileString() 函数后才会打印。我希望它在运行之前打印"Reading File..."。我缩小了问题范围,发现是 file:read("*a") 捣乱了我整个(较大的)脚本中的所有打印内容。

function getFileString(path)

    local file, err = io.open(path, "r")
    local all = file:read("*a")
    file:close()

    return all

end

function main()

    local directory = "C:\\Documents and Settings\\All Users\\Documents\\"

    print("Reading File...")
    local file_all = getFileString(directory.."myFile.txt")
    print("File Read!\n")

end

main()

是否将其转化为函数并不重要。我应该提到,这主要是因为我正在读取一个大约 150MB 的文件。

点赞
用户1442917
用户1442917

我认为输出只是被缓冲了。在打印之前尝试添加 io.stdout:setvbuf('no'),这应该会关闭输出的缓冲。

2012-10-26 17:48:16