- 简单I/O模型
io.input
io.output
io.write
可以读取任意数量的字符串(或数字)并将其写入当前输入流。io.read
可以从当前输入流中读取字符串,其参数决定了要读取的数据:a
读取整个文件l
读取下一行(丢弃换行符)L
读取下一行(保留换行符)n
读取一个数值- num 以字符串读取 num 个字符
io.read(0)
是一个特例,它常用于测试是否到达了文件末尾。如果仍然有数据可供读取,它会返回一个空字符串;否则,则返回nil。
- 完整I/O模型
io.open
打开一个文件- I/O库提供了三个预定义的句柄:
io.stdin
io.stdout
io.stderr
- 除了函数
io.read
外,还可以用函数io.lines
从流中读取内容。
- 其他文件操作
- 函数
io.tmpfile
返回一个临时文件的句柄,该句柄是以读/写模式打开的。当程序运行结束后,该临时文件会被自动移除(删除)。 - 函数
flush
将所有缓冲数据写入文件。 - 函数
setvbuf
用于设置流的缓冲模式。 - 函数
seek
用来获取和设置文件的当前位置。 - 函数
os.rename
用于文件重命名。 - 函数
os.remove
用于移除(删除)文件。
- 函数
- 其他系统调用
- 函数
os.exit
用于终止程序的执行。 - 函数
os.getenv
用于获取某个环境变量。
- 函数
- 运行系统命令
- 函数
os.execute
用于运行系统命令,它等价于C语言中的函数system
。该函数的参数表示待执行命令的字符串,返回值为命令运行结束后的状态。 - 函数
io.popen
运行一条系统命令,但该函数还可以重定向命令的输入/输出,从而使得程序可以向命令中写入或者从命令中的输出中读取。
- 函数