LuaSTG-x Core API
|
Public Member Functions | |
function | close () |
function | flush () |
function | lines (local ...) |
function | read (local ...) |
function | seek (local whence, local offset) |
function | setvbuf (local mode, local size) |
function | write (local ...) |
File object
function close | ( | ) |
关闭 file
。
注意,文件在句柄被垃圾回收时会自动关闭,
但是多久以后发生,时间不可预期的。
当关闭用 io.popen
创建出来的文件句柄时,
file:close
返回与 os.execute
一样的返回值。
function flush | ( | ) |
将写入的数据保存到 file
中。
读文件 file
,
指定的格式决定了要读什么。
对于每种格式,函数返回读出的字符对应的字符串或数字。
若不能以该格式对应读出数据则返回 **nil**。
(对于最后这种情况,函数不会读出后续的格式。)
当调用时不传格式,它会使用默认格式读下一行(见下面描述)。
提供的格式有
**"n"**: 读取一个数字。
(数字可以有前置或后置的空格,以及符号。)
只要能构成合法的数字,这个格式总是去读尽量长的串;
如果读出来的前缀无法构成合法的数字
(比如空串,"0x"
或 "3.4e-"
),
就中止函数运行,返回 **nil**。
**"a"**: 从当前位置开始读取整个文件。
如果已在文件末尾,返回空串。
**"l"**: 读取一行并忽略行结束标记。当在文件末尾时,返回 **nil**。
这是默认格式。
**"L"**: 读取一行并保留行结束标记(如果有的话),
当在文件末尾时,返回 **nil**。
number: 读取一个不超过这个数量字节数的字符串。
当在文件末尾时,返回 **nil**。
如果 number
为零,
它什么也不读,返回一个空串。
当在文件末尾时,返回 **nil**。
格式 "l"
和 "L"
只能用于文本文件。
设置及获取基于文件开头处计算出的位置。
设置的位置由 offset
和
whence
字符串 whence
指定的基点决定。基点可以是:
**"set"**: 基点为 0 (文件开头);
**"cur"**: 基点为当前位置;
**"end"**: 基点为文件尾;
当 seek
成功时,返回最终从文件开头计算起的文件的位置。
当 seek
失败时,返回 nil 加上一个错误描述字符串。
whence
的默认值是 "cur"
,
offset
默认为 0 。
因此,调用 file:seek()
可以返回文件当前位置,并不改变它;
调用 file:seek("set")
将位置设为文件开头(并返回 0);
调用 file:seek("end")
将位置设到文件末尾,并返回文件大小。
whence | string |
offset | number |
设置输出文件的缓冲模式。
有三种模式:
**"no"**: 不缓冲;输出操作立刻生效。
**"full"**: 完全缓冲;只有在缓存满或当你显式的对文件调用
flush
(参见 io.flush
)时才真正做输出操作。
**"line"**: 行缓冲;输出将缓冲到每次换行前,
对于某些特殊文件(例如终端设备)缓冲到任何输入前。
对于后两种情况,size
以字节数为单位指定缓冲区大小。
默认会有一个恰当的大小。
mode | string |
size | number |