Lua 面试题 目录

Lua 的 I/O 库提供了哪些函数?

推荐答案

Lua 的 I/O 库提供了以下主要函数:

  1. io.open(filename, mode):打开一个文件并返回文件句柄。
  2. io.close([file]):关闭文件句柄。
  3. io.read(...):从标准输入或文件中读取数据。
  4. io.write(...):向标准输出或文件中写入数据。
  5. io.flush([file]):刷新输出缓冲区。
  6. io.lines([filename]):返回一个迭代器,用于逐行读取文件。
  7. io.input([file]):设置默认输入文件。
  8. io.output([file]):设置默认输出文件。
  9. io.tmpfile():创建一个临时文件并返回文件句柄。
  10. io.type(obj):检查对象是否为有效的文件句柄。

本题详细解读

io.open(filename, mode)

  • 功能:打开一个文件并返回文件句柄。
  • 参数
    • filename:要打开的文件名。
    • mode:打开模式,如 "r"(只读)、"w"(写入)、"a"(追加)等。
  • 返回值:成功时返回文件句柄,失败时返回 nil 和错误信息。

io.close([file])

  • 功能:关闭文件句柄。
  • 参数
    • file:可选参数,指定要关闭的文件句柄。如果省略,则关闭默认输出文件。
  • 返回值:无。

io.read(...)

  • 功能:从标准输入或文件中读取数据。
  • 参数:可变参数,指定读取格式,如 "*n"(读取数字)、"*a"(读取所有内容)等。
  • 返回值:读取到的数据。

io.write(...)

  • 功能:向标准输出或文件中写入数据。
  • 参数:可变参数,指定要写入的数据。
  • 返回值:无。

io.flush([file])

  • 功能:刷新输出缓冲区。
  • 参数
    • file:可选参数,指定要刷新的文件句柄。如果省略,则刷新默认输出文件。
  • 返回值:无。

io.lines([filename])

  • 功能:返回一个迭代器,用于逐行读取文件。
  • 参数
    • filename:可选参数,指定要读取的文件名。如果省略,则从标准输入读取。
  • 返回值:迭代器函数。

io.input([file])

  • 功能:设置默认输入文件。
  • 参数
    • file:可选参数,指定要设置为默认输入的文件句柄或文件名。如果省略,则返回当前默认输入文件。
  • 返回值:当前默认输入文件句柄。

io.output([file])

  • 功能:设置默认输出文件。
  • 参数
    • file:可选参数,指定要设置为默认输出的文件句柄或文件名。如果省略,则返回当前默认输出文件。
  • 返回值:当前默认输出文件句柄。

io.tmpfile()

  • 功能:创建一个临时文件并返回文件句柄。
  • 参数:无。
  • 返回值:临时文件的文件句柄。

io.type(obj)

  • 功能:检查对象是否为有效的文件句柄。
  • 参数
    • obj:要检查的对象。
  • 返回值:如果 obj 是文件句柄,则返回 "file";否则返回 nil
纠错
反馈