Home Explore Blog CI



neovim

69th chunk of `runtime/doc/luaref.txt`
4795188cb367df67ce29ec9cd705a8a3fefa2113752c7e440000000100000fa0
     *io.flush()*
        Equivalent to `file:flush` over the default output file.

io.input([{file}])                                                  *io.input()*
        When called with a file name, it opens the named file (in text mode),
        and sets its handle as the default input file. When called with a file
        handle, it simply sets this file handle as the default input file.
        When called without parameters, it returns the current default input
        file.

        In case of errors this function raises the error, instead of returning
        an error code.

io.lines([{filename}])                                              *io.lines()*
        Opens the given file name in read mode and returns an |iterator|
        function that, each time it is called, returns a new line from the
        file. Therefore, the construction

        `for line in io.lines(filename) do`  `body`  `end`

        will iterate over all lines of the file. When the iterator function
        detects the end of file, it returns `nil` (to finish the loop) and
        automatically closes the file.

        The call `io.lines()` (without a file name) is equivalent to
        `io.input():lines()`; that is, it iterates over the lines of the
        default input file. In this case it does not close the file when the
        loop ends.

io.open({filename} [, {mode}])                                       *io.open()*
        This function opens a file, in the mode specified in the string
        {mode}. It returns a new file handle, or, in case of errors, `nil`
        plus an error message.

        The {mode} string can be any of the following:

         - `"r"`   read mode (the default);
         - `"w"`   write mode;
         - `"a"`   append mode;
         - `"r+"`  update mode, all previous data is preserved;
         - `"w+"`  update mode, all previous data is erased;
         - `"a+"`  append update mode, previous data is preserved, writing is
                 only allowed at the end of file.

        The {mode} string may also have a `b` at the end, which is needed in
        some systems to open the file in binary mode. This string is exactly
        what is used in the standard C function `fopen`.

io.output([{file}])                                                *io.output()*
        Similar to `io.input`, but operates over the default output file.

io.popen({prog} [, {mode}])                                         *io.popen()*
        Starts program {prog} in a separated process and returns a file handle
        that you can use to read data from this program (if {mode} is `"r"`,
        the default) or to write data to this program (if {mode} is `"w"`).

        This function is system dependent and is not available on all
        platforms.

io.read({...})                                                       *io.read()*
        Equivalent to `io.input():read`.

io.tmpfile()                                                      *io.tmpfile()*
        Returns a handle for a temporary file. This file is opened in update
        mode and it is automatically removed when the program ends.

io.type({obj})                                                       *io.type()*
        Checks whether {obj} is a valid file handle. Returns the string
        `"file"` if {obj} is an open file handle, `"closed file"` if {obj} is
        a closed file handle, or `nil` if {obj} is not a file handle.

io.write({...})                                                     *io.write()*
        Equivalent to `io.output():write`.

file:close()                                               *file:close()*
        Closes `file`. Note that files are automatically closed when their
        handles are garbage collected, but that takes an unpredictable amount
        of time to happen.

file:flush()                                               *file:flush()*
        Saves any written data to `file`.

file:lines()                                    

Title: Lua I/O Library: File Operations - Opening, Reading, Writing, and Closing Files
Summary
This section details the Lua I/O library functions for file manipulation. It covers `io.lines` for iterating over file lines, `io.open` for opening files with various modes (read, write, append, update, binary), `io.output` for setting the default output file, `io.popen` for running external programs, `io.read` for reading from the default input file, `io.tmpfile` for creating temporary files, `io.type` for checking file handle types, `io.write` for writing to the default output file, `file:close` for closing files, and `file:flush` for saving written data.