在Lua中编写多行文本文件

use*_*071 8 lua file line-breaks multiline

我想知道让我的脚本将某些内容写入文件(比方说text.txt)的最佳方法,最终会在最后添加换行符.当我使用附加文本时

file = io.open(test.txt, "a")
file:write("hello")
Run Code Online (Sandbox Code Playgroud)

两次,文件看起来像:

hellohello
Run Code Online (Sandbox Code Playgroud)

但我希望它看起来像:

hello
hello
Run Code Online (Sandbox Code Playgroud)

Yu *_*Hao 9

不同print的是,调用时不会自动添加新行字符io.write,您可以自己添加:

file:write("hello", "\n")
Run Code Online (Sandbox Code Playgroud)


Pri*_*mre 5

实现此目的的最简单方法是每次调用方法时都包含换行符序列,write例如 so:file:write("hello\n")或 so: file:write("hello", "\n")。这样,一个脚本如

file = io.open(test.txt, "a")
file:write("hello", "\n")
file:write("hello", "\n")
Run Code Online (Sandbox Code Playgroud)

将产生所需的输出:

hello
hello
Run Code Online (Sandbox Code Playgroud)

然而,还有许多其他解决方案(其中一些比其他解决方案更优雅)。例如,当在 Java 中输出文本时,有一些特殊的方法,例如BufferedWriter#newLine(),它们会以更简洁的方式完成同样的事情。因此,如果您对实现此目标的不同方式感兴趣,我建议您阅读 Lua 文档以获取类似的方法/解决方案。