推荐答案
Lua 的 I/O 库提供了以下主要函数:
- io.open(filename, mode):打开一个文件并返回文件句柄。
- io.close([file]):关闭文件句柄。
- io.read(...):从标准输入或文件中读取数据。
- io.write(...):向标准输出或文件中写入数据。
- io.flush([file]):刷新输出缓冲区。
- io.lines([filename]):返回一个迭代器,用于逐行读取文件。
- io.input([file]):设置默认输入文件。
- io.output([file]):设置默认输出文件。
- io.tmpfile():创建一个临时文件并返回文件句柄。
- 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
。