Запись многострочных текстовых файлов в Lua

Я хотел бы знать, как лучше всего заставить мой скрипт записать что-то в файл (скажем text.txt) таким образом, чтобы всегда добавлять разрыв строки в конце. Когда я добавляю текст, используя

file = io.open(test.txt, "a")
file:write("hello")

дважды, файл выглядит так:

hellohello

но я хочу, чтобы это выглядеть так:

hello
hello

2 ответов


В отличие от print символ новой строки не добавляется автоматически при вызове io.write, вы можете добавить его себе:

file:write("hello", "\n")

самый простой способ достичь этого - включить последовательность символов новой строки каждый раз, когда вы называете write метод вот так: file:write("hello\n") или так: file:write("hello", "\n"). Таким образом, такой скрипт, как

file = io.open(test.txt, "a")
file:write("hello", "\n")
file:write("hello", "\n")

приведет к желаемому результату:

hello
hello

есть, однако, много других решений для этого (некоторые из них более элегантны, чем другие). Например, при выводе текста на Java существуют специальные методы, такие как BufferedWriter#newLine(), который сделает то же самое в более чистом виде. Поэтому, если вы заинтересованы в другом способе достижения этого, я предлагаю вам прочитать документы Lua для аналогичных методов/решений.