Lua - Creating Temporary Files
Lua provides two methods to create a temporary file for processing. A temporary file is created during program execution and is removed once program is closed.
io.tmpfile() - creates a temp file in Operating System specific temporary directory.
os.tmpname() - provides a unique name which can be used to create a temporary directory.
Example - Creating Temporary File using io.tmpfile()
Following example showing usage of io.tmpfile() to create a temp file.
main.lua
-- create a temporary file, by default in update mode
f = io.tmpfile()
print("temp file created.")
-- write date to temp file
f:write ("tutorialspoint.com")
-- set cursor to start
f:seek ("set", 0)
-- read data written to temp file
s = f:read ("*a")
-- print the data
print (s)
-- close the file
f:close ()
Output
When the above code is built and executed, it produces the following result −
temp file created. tutorialspoint.com
Explanation
Here we're created a temp file using io.tmpfile
Then using f.write() method, we're writing some data to the temporary file.
Now using f.seek("set",0) method, we've set the pointer to start of the file.
Then content is read using f.read("*a") method and content is printed using print() method.
Finally we're closing the file handle using f.close() method.
Example - Creating Temporary File using os.tmpname()
Following example showing usage of os.tmpname() to get name of a temp file.
main.lua
-- temporary file name
filename = os.tmpname()
-- create a temporary file, by default in update mode
f = io.open(filename,"w+")
print("temp file created.")
-- write date to temp file
f:write ("tutorialspoint.com")
-- set cursor to start
f:seek ("set", 0)
-- read data written to temp file
s = f:read ("*a")
-- print the data
print (s)
-- close the file
f:close ()
-- remove the file
os.remove(filename)
Output
When the above code is built and executed, it produces the following result −
temp file created. tutorialspoint.com
Explanation
Here we're getting name of a temp file using os.tmpname
Then using io.open(filename,"w+") method, we've created the temporary file in current directory in update mode.
Then using f.write() method, we're writing some data to the temporary file.
Now using f.seek("set",0) method, we've set the pointer to start of the file.
Then content is read using f.read("*a") method and content is printed using print() method.
We're closing the file handle using f.close() method.
Finally temporary file is removed using os.remove() method.