其他文件操作

简介: 其他文件操作

函数 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 外加一条错误信息错误码

目录
相关文章
|
1月前
|
移动开发 Linux 程序员
c++文件操作,超详细
c++文件操作,超详细
59 0
|
2天前
|
存储 程序员 编译器
文件操作详解
文件操作详解
28 0
|
30天前
|
存储 程序员 编译器
文件操作(1)
文件操作(1)
31 2
|
1月前
|
弹性计算 运维 Shell
文件操作
【4月更文挑战第30天】
25 0
|
8月前
|
程序员 C语言 Windows
【文件操作】
【文件操作】
27 0
|
1月前
|
C++
轻松学会文件操作(2)
轻松学会文件操作(2)
|
7月前
|
程序员 编译器 C语言
文件操作(中)
文件操作(中)
22 0
|
7月前
|
存储 C语言
文件操作介绍(下)
文件操作介绍(下)
34 0
|
7月前
|
存储 编译器 数据库
文件操作介绍(上)
文件操作介绍(上)
29 0
|
9月前
|
C#
使用C#进行文件操作
在许多应用程序中,文件操作是常见的任务之一。无论是读取文件内容、写入数据,还是创建、移动和删除文件,C# 编程语言都提供了强大且易于使用的文件操作功能。本篇博客将介绍如何使用C#来进行基本的文件操作。
42 0