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.

Advertisements