io.open
Lua function

io.open

Summary

Opens a file

Prototype

f = io.open (filename, mode)



Description

Opens a file and returns a file handle for working with it.

Modes can be a string which is:


  • r - read mode
  • w - write mode (overwrites existing)
  • a - append mode (appends to existing)
  • b - binary mode
  • r+ - update mode (existing data preserved)
  • w+ - update mode (existing data erased)
  • a+ - append update mode (existing data preserved, append at end of file only)


If the file cannot be opened this function does not raise an error (unlike io.input and io.output) but returns 3 things:


  • nil
  • An error message (string)
  • An error code (number)


Thus a sensible thing to do is wrap the io.open call with an assert, as in the example:


f = assert (io.open ("test.txt", "r"))  -- open it
s = f:read ("*a")  -- read all of it
print (s)  -- print out
f:close ()  -- close it



See Also ...

Topics

DOC_lua_base Lua base functions
DOC_lua_bc Lua bc (big number) functions
DOC_lua_bit Lua bit manipulation functions
DOC_lua_coroutines Lua coroutine functions
DOC_lua_debug Lua debug functions
DOC_lua_io Lua io functions
DOC_lua_math Lua math functions
DOC_lua_os Lua os functions
DOC_lua_package Lua package functions
DOC_lua_rex Lua PCRE regular expression functions
DOC_lua Lua script extensions
DOC_lua_string Lua string functions
DOC_lua_tables Lua table functions
DOC_lua_utils Lua utilities
DOC_scripting Scripting

Lua functions

LUA_f:close f:close (Closes a file)
LUA_f:flush f:flush (Flushes outstanding data to disk)
LUA_f:lines f:lines (Returns an iterator function for reading the file line-by-line)
LUA_f:read f:read (Reads the file according to the specified formats)
LUA_f:seek f:seek (Sets and gets the current file position)
LUA_f:setvbuf f:setvbuf (Sets the buffering mode for an output file)
LUA_f:write f:write (Writes to a file)
LUA_io.close io.close (Closes a file)
LUA_io.flush io.flush (Flushes outstanding data to disk for the default output file)
LUA_io.input io.input (Opens filename for input in text mode)
LUA_io.lines io.lines (Returns an iterator function for reading a named file line-by-line)
LUA_io.output io.output (Opens a file for output)
LUA_io.popen io.popen (Creates a pipe and executes a command)
LUA_io.read io.read (Reads from the default input file)
LUA_io.stderr io.stderr (File handle for standard error file)
LUA_io.stdin io.stdin (File handle for standard input file)
LUA_io.stdout io.stdout (File handle for standard output file)
LUA_io.tmpfile io.tmpfile (Returns a handle to a temporary file)
LUA_io.type io.type (Returns type of file handle)
LUA_io.write io.write (Writes to the default output file)

(Help topic: lua=io.open)

DOC_contents Documentation contents page