其他文件操作

简介: 其他文件操作

函数 io.tmpfile 返回一个操作临时文件句柄,该句柄是以读/写模式打开的。当程序运行结束后,该临时文件会被自动移除(删除)。


函数 flush 将所有缓冲数据写入文件。与函数 write 一样,我们可以把它当做 io.flush() 使用,以刷新当前输出流;或者把它当做方法 f:flush() 使用,以刷新流 f


函数 setvbuf 用于设置流的缓冲模式。该函数的第一个参数是一个字符串: "no" 表示无缓冲"full" 表示在缓冲区满时或者显式地刷新文件时才写入参数, "line" 表示输出一直被缓冲直到遇到换行符或者一些特定文件(例如终端设备)中读取到了数据。对于后两个选项,函数 setvbuf 支持可选的第二个参数,用于指定缓冲区大小


函数 seek 用来获取和设置文件的当前位置,常常使用 f:seek(whence, offset) 的形式来调用,其中参数 whence 是一个指定如何使用偏移的字符串。当参数 whence 取值为 "set" 时,表示相对于文件开头的偏移;取值为 "cur" 时,表示相对于文件当前位置的偏移;取值为 "end" 时,表示相对于文件尾部的偏移。不管 whence 的取值是什么,该函数都会以字母为单位,返回当前新位置在流中相对于文件开头的偏移。


whence默认值"cur"offset 的默认值是 0 。因此,调用函数 file:seek() 会返回当前的位置且不改变当前的位置;调用函数 file:seek("set") 会将位置重置到文件开头并返回 0 ;调用函数 file:seek("end") 会将当前位置重置到文件结尾并返回文件的大小。下面的函数演示了如何在不修改当前位置的情况下获取文件大小:

function fsize (file)
  local current = file:seek()     -- 保存当前位置
  local size = file:seek("end")   -- 获取文件大小
  file:seek("set", current)       -- 恢复当前位置
  return size
end


此外,函数 os.rename 用于文件重命名,函数 os.remove 用于移除(删除)文件。需要注意的是,由于这两个函数处理的是真实文件而非流,所以他们位于 os 库而非 io 库中。


上述所有的函数在遇到错误时,均会返回 nil 外加一条错误信息错误码

目录
相关文章
|
7月前
|
移动开发 Linux 程序员
c++文件操作,超详细
c++文件操作,超详细
105 0
|
存储 C语言 Windows
文件操作(上)
文件操作(上)
52 0
|
6月前
|
存储 C++
C++文件操作
C++文件操作
|
7月前
|
C语言
文件操作(2)
文件操作(2)
45 3
|
程序员 C语言 Windows
【文件操作】
【文件操作】
46 0
|
7月前
|
弹性计算 运维 Shell
文件操作
【4月更文挑战第30天】
41 0
|
7月前
|
存储 程序员 编译器
|
7月前
|
C++
轻松学会文件操作(2)
轻松学会文件操作(2)
|
7月前
|
存储 Java C语言
文件操作你会了吗
文件操作你会了吗
81 0
|
存储 编译器 数据库
文件操作介绍(上)
文件操作介绍(上)
54 0