Printing Lua文件读取前未打印

Printing Lua文件读取前未打印,printing,io,lua,Printing,Io,Lua,在运行文件打开和读取之前,我遇到了一个让Lua打印的问题。这将打印字符串“读取文件…”和“文件读取!”,但仅在完成getFileString()函数后打印。我希望它在运行之前打印“正在读取文件…”。我把范围缩小到file:read(“*a”),这会弄乱我(更大)脚本中的所有打印内容 无论我是否使用了功能,这似乎都无关紧要。我应该提到的是,这主要是因为我正在读取一个150MB左右的文件。我认为输出只是缓冲的。在打印之前尝试添加io.stdout:setvbuf('no'),这将关闭输出缓冲。您使用

在运行文件打开和读取之前,我遇到了一个让Lua打印的问题。这将打印字符串“读取文件…”和“文件读取!”,但仅在完成getFileString()函数后打印。我希望它在运行之前打印“正在读取文件…”。我把范围缩小到file:read(“*a”),这会弄乱我(更大)脚本中的所有打印内容


无论我是否使用了功能,这似乎都无关紧要。我应该提到的是,这主要是因为我正在读取一个150MB左右的文件。

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

您使用的是什么开发环境。在我使用的一个例子中,输出窗口仅在脚本结束或到达断点时刷新。是的,这肯定是由于IDE(SciTE?)造成的问题。Lua本身肯定会在读取文件之前执行第一次打印。是的,这可能是编辑器的缓冲问题。如果您运行lua.exe并调用
dofile(“name\u of_script.lua”)
,我想您会得到预期的结果。
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()