Lua - Writing Files



Lua provides I/O library to write and manipulate files. We can open a file in write mode using following way−

Simple Model

io.write (content)

Where−

  • content− contents to be written or appended to the file as per mode specified while opening file.

Before writing a file, it should be opened using following syntax:

-- Opens a file specified by fileName in write mode
file = io.open(fileName, "w")

-- sets the default input file
io.input(file)

Complete Model

file.write (content)

Where−

  • file− file handle returned by io.open().

  • content− content to be written/appended to the file.

Before writing a file, it should be opened using following syntax:

-- Opens a file specified by fileName in write mode
file = io.open(fileName, "w")

Write Modes

Let's explore the various options to write content of a file using write() method:

Sr.No. Mode & Description
1

"w"

Write enabled mode that overwrites the existing file or creates a new file.

2

"a"

Append mode that opens an existing file or creates a new file for appending.

3

"r+"

Read and write mode for an existing file.

4

"w+"

All existing data is removed if file exists or new file is created with read write permissions.

5

"a+"

Append mode with read mode enabled that opens an existing file or creates a new file.

Example - Write File Contents

Let us now see how to write a file line by line.

main.lua

-- write a file content
function writeFile()
   -- Opens a file in write mode, 
   -- create file if not present
   -- overwrite content of file if present
   f = io.open("example.txt","w")
   -- write the contents
   f:write("Welcome to tutorialspoint.com", "\n")
   f:write("Simply Easy Learning", "\n")
   -- close the file handle
   f:close()
end

-- write the file 
writeFile()

print("Content written to the file successfully.")

Output

When the above code is built and executed, it produces the following result −

Content written to the file successfully.

File Content

Above code create the file example.txt in current directory if not present otherwise overwrite the existing content. You can check the content of example.txt−

Welcome to tutorialspoint.com
Simply Easy Learning

Example - Appending File Contents

Let us now see how to append contents to a file.

main.lua

-- append a file content
function appendFile()
   -- Opens a file in append mode, 
   -- create file if not present
   -- overwrite content of file if present
   f = io.open("example.txt","a")
   -- write the contents
   f:write("Learning Lua is fun.")
   -- close the file handle
   f:close()
end

-- write the file 
appendFile()

print("Content written to the file successfully.")

Output

When the above code is built and executed, it produces the following result −

Content written to the file successfully.

File Content

Above code create the file example.txt in current directory if not present otherwise overwrite the existing content. You can check the content of example.txt−

Welcome to tutorialspoint.com
Simply Easy Learning
Learning Lua is fun.
Advertisements