LuaSTG-x Core API
file Class Reference

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 ...)
 

Detailed Description

File object

Member Function Documentation

◆ close()

function close ( )

关闭 file

注意,文件在句柄被垃圾回收时会自动关闭,

但是多久以后发生,时间不可预期的。

当关闭用 io.popen 创建出来的文件句柄时,

file:close 返回与 os.execute 一样的返回值。

◆ flush()

function flush ( )

将写入的数据保存到 file 中。

◆ lines()

function lines ( local ...  )

返回一个迭代器函数,

每次调用迭代器时,都从文件中按指定格式读数据。

如果没有指定格式,使用默认值 "l"

看一个例子

for c in file:lines(1) do *body* end

会从文件当前位置开始,中不断读出字符。

io.lines 不同,

这个函数在循环结束后不会关闭文件。

在出错的情况下,函数抛出错误而不是返回错误码。

Returns
fun():any

◆ read()

function read ( local ...  )

读文件 file

指定的格式决定了要读什么。

对于每种格式,函数返回读出的字符对应的字符串或数字。

若不能以该格式对应读出数据则返回 **nil**。

(对于最后这种情况,函数不会读出后续的格式。)

当调用时不传格式,它会使用默认格式读下一行(见下面描述)。

提供的格式有

**"n"**: 读取一个数字。

(数字可以有前置或后置的空格,以及符号。)

只要能构成合法的数字,这个格式总是去读尽量长的串;

如果读出来的前缀无法构成合法的数字

(比如空串,"0x""3.4e-"),

就中止函数运行,返回 **nil**。

**"a"**: 从当前位置开始读取整个文件。

如果已在文件末尾,返回空串。

**"l"**: 读取一行并忽略行结束标记。当在文件末尾时,返回 **nil**。

这是默认格式。

**"L"**: 读取一行并保留行结束标记(如果有的话),

当在文件末尾时,返回 **nil**。

number: 读取一个不超过这个数量字节数的字符串。

当在文件末尾时,返回 **nil**。

如果 number 为零,

它什么也不读,返回一个空串。

当在文件末尾时,返回 **nil**。

格式 "l""L" 只能用于文本文件。

◆ seek()

function seek ( local  whence,
local  offset 
)

设置及获取基于文件开头处计算出的位置。

设置的位置由 offset

whence 字符串 whence

指定的基点决定。基点可以是:

**"set"**: 基点为 0 (文件开头);

**"cur"**: 基点为当前位置;

**"end"**: 基点为文件尾;

seek 成功时,返回最终从文件开头计算起的文件的位置。

seek 失败时,返回 nil 加上一个错误描述字符串。

whence 的默认值是 "cur"

offset 默认为 0 。

因此,调用 file:seek() 可以返回文件当前位置,并不改变它;

调用 file:seek("set") 将位置设为文件开头(并返回 0);

调用 file:seek("end") 将位置设到文件末尾,并返回文件大小。

重载
fun()
Parameters
whencestring
offsetnumber

◆ setvbuf()

function setvbuf ( local  mode,
local  size 
)

设置输出文件的缓冲模式。

有三种模式:

**"no"**: 不缓冲;输出操作立刻生效。

**"full"**: 完全缓冲;只有在缓存满或当你显式的对文件调用

flush(参见 io.flush)时才真正做输出操作。

**"line"**: 行缓冲;输出将缓冲到每次换行前,

对于某些特殊文件(例如终端设备)缓冲到任何输入前。

对于后两种情况,size 以字节数为单位指定缓冲区大小。

默认会有一个恰当的大小。

重载
fun(mode:string)
Parameters
modestring
sizenumber

◆ write()

function write ( local ...  )

将参数的值逐个写入 file

参数必须是字符串或数字。

成功时,函数返回 file

否则返回 nil 加错误描述字符串。


The documentation for this class was generated from the following file:
file
Definition: io.lua.hpp:266
file::lines
function lines(local ...)
Definition: io.lua.hpp:323