首页 > 解决方案 > 不会对具有完全缓冲的文件执行输出操作

问题描述

缓冲区已满后,此片段不会将 90 个字符的流写入文件

"full" 表示当缓冲区已满或我们显式刷新文件时执行输出操作。通过写出:write(string.rep("A",90)) 并用记事本打开文件,我可以看到文本。

此片段不写入文件

out = io.open("E:\\file","w")
out:setvbuf("full",90)
out:write(string.rep("A",89))
out:write("A")

另一方面,这个片段确实写入文件

out = io.open("E:\\file","w")
out:setvbuf("full",90)
out:write(string.rep("A",90))

这似乎是一个简单的问题,但实际上让我感到惊讶的是,由于这样一个微不足道的变化,第一个片段没有写入任何内容,而不是将文本写入文件。为什么会这样?顺便说一句,我使用的是 Lua 5.3.4。

标签: luabuffering

解决方案


推荐阅读