Search code examples
luaio

Lua io.write() not working


I am using a luvit Lua environment to run my lua code through my control panel. I am looking to write to a .txt file, but with the simple code that i am running, its not working.

The reason I wish to write to a .txt file is to log notices from my Discord Bot I am working on in the Discordia library.

I have a folder called MezzaBOT. In this file i have a write.lua file and also a log.txt file. I have this simple code in my write.lua file:

io.output('log.txt')
io.write('hello\n')
io.close()

I then run in my command promt with Luvit environment:

>luvit Desktop\mezzabot\write.lua

I don't get any errors but the log.txt file continues to stay empty. Am I missing a line in my code, or do i need to access log.txt differently?

edit: my new code is the following

file = io.open('log.txt')
file:write('hello', '\n')
file:close()

and it is not making a new line for each time with \n

edit B:

Ok, i found my problem, its creating a log.txt in my C:\Users\PC. One other problem is when writing, its not making a new line with the \n. Can someone please help me?


Solution

  • Lua, by default, opens files in read mode. You need to explicitly open a file in write mode if you want to write to it (see manual)

    file = io.open('log.txt', 'w')
    file:write('hello', '\n')
    file:close()
    

    Should work :)