Home Explore Blog CI



neovim

70th chunk of `runtime/doc/luaref.txt`
126f07d47e994854acad8d3fa23ef5b59a1be8b713639a470000000100000fa9
 *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()                                               *file:lines()*
        Returns an |iterator| function that, each time it is called, returns a
        new line from the file. Therefore, the construction

               `for line in file:lines() do`  `body`  `end`

        will iterate over all lines of the file. (Unlike `io.lines`, this
        function does not close the file when the loop ends.)

file:read({...})                                            *file:read()*
        Reads the file `file`, according to the given formats, which specify
        what to read. For each format, the function returns a string (or a
        number) with the characters read, or `nil` if it cannot read data with
        the specified format. When called without formats, it uses a default
        format that reads the entire next line (see below).

        The available formats are

         `"*n"`    reads a number; this is the only format that returns a
                 number instead of a string.
         `"*a"`    reads the whole file, starting at the current position. On
                 end of file, it returns the empty string.
         `"*l"`    reads the next line (skipping the end of line), returning
                 `nil` on end of file. This is the default format.
         `number`  reads a string with up to that number of characters,
                 returning `nil` on end of file. If number is zero, it reads
                 nothing and returns an empty string, or `nil` on end of file.

file:seek([{whence}] [, {offset}])                          *file:seek()*
        Sets and gets the file position, measured from the beginning of the
        file, to the position given by {offset} plus a base specified by the
        string {whence}, as follows:

         - `"set"`: base is position 0 (beginning of the file);
         - `"cur"`: base is current position;
         - `"end"`: base is end of file;

        In case of success, function `seek` returns the final file position,
        measured in bytes from the beginning of the file. If this function
        fails, it returns `nil`, plus a string describing the error.

        The default value for {whence} is `"cur"`, and for {offset} is 0.
        Therefore, the call `file:seek()` returns the current file position,
        without changing it; the call `file:seek("set")` sets the position to
        the beginning of the file (and returns 0); and the call
        `file:seek("end")` sets the position to the end of the file, and
        returns its size.

file:setvbuf({mode} [, {size}])                          *file:setvbuf()*
        Sets the buffering mode for an output file. There are three available
        modes:

         `"no"`    no buffering; the result of any output operation appears
                 immediately.
         `"full"`  full buffering; output operation is performed only when
                 the buffer is full (or when you explicitly `flush` the file
                 (see |io.flush()|).
         `"line"`  line buffering;

Title: Lua File Object Methods: Closing, Flushing, Reading, Seeking, and Setting Buffer Modes
Summary
This section describes the methods available for file objects in Lua. It covers `file:close` for closing a file, `file:flush` for saving written data, `file:lines` for iterating through lines of a file, `file:read` for reading data with specified formats (`*n`, `*a`, `*l`, number), `file:seek` for setting and getting the file position relative to the beginning, current position, or end of the file, and `file:setvbuf` for setting the buffering mode of an output file (no buffering, full buffering, or line buffering).