Lua-文件操作
2024-09-07 06:18:38
简单模式和完全模式
- 简单模式(simple model)拥有一个当前输入文件和一个当前输出文件,并且提供针对这些文件相关的操作。
- 完全模式(complete model) 使用外部的文件句柄来实现。它以一种面对对象的形式,将所有的文件操作定义为文件句柄的方法。
打开文件
1 |
file = io.open(filename [, mode]) |
mode 选项
模式 | 简介 |
---|---|
r | 只读,文件必须存在。默认。 |
w | 只写,文件存在,则写入时覆盖原有内容。文件不存在,则创建文件。 |
a | 附加写入,文件存在,则从文件末尾写入。文件不存在,则创建文件。 |
b | 二进制模式,与r/w/a结合使用。 |
+ | 表示文件可读写,与r/w/a结合使用。 |
1 |
file01 = io.open("test.lua", "r") |
从文件读取数据
1 |
file01 = io.open("test.lua", "r") |
向文件写入数据
1 |
file01 = io.open("test.lua", "a") |
关闭文件
1 |
file01 = io.open("test.lua", "r") |
方法
简单模式,io的方法
调用方式:io.方法名()。如:io.read()
- read()
输入文件一行数据,并把游标指向下一行开始地址。
参数:
参数 | 说明 |
---|---|
“*l” | 读取下一行,在文件尾 (EOF) 处返回 nil。默认。 |
“*n” | 读取一个数字并返回它。 |
“*a” | 从当前位置读取整个文件。 |
number | 返回一个指定字符个数的字符串,或在 EOF 时返回 nil。 |
- tmpfile()
返回一个临时文件句柄,该文件以更新模式(附加)打开,程序结束时自动删除。
- type(file)
检测file是否一个可用的文件句柄。
- flush()
向文件写入缓冲中的所有数据。
- lines(optional filename)
打开指定的文件filename为只读模式并返回一个迭代函数,每次调用将获得文件中的一行内容,当到文件尾时,将返回nil,并自动关闭文件。
若不带参数时io.lines() io.input():lines(); 读取默认输入设备的内容,但结束时不关闭文件
完全模式,文件句柄的方法
调用方式:文件句柄:方法名()。如:file:read()。
- read()
作用和参数与简单模式一致。
- seek(optional whence, optional offset)
设置和获取当前文件位置,成功则返回最终的文件位置(按字节),失败则返回nil加错误信息。
参数 whence 取值:
值 | 说明 |
---|---|
“cur” | 从当前位置开始。默认 |
“set” | 从文件头开始 |
“end” | 从文件尾开始 |
offset,偏移量,默认为0。
不带参数file:seek()则返回当前位置。
file:seek(“set”)则定位到文件头。
file:seek(“end”)则定位到文件尾并返回文件大小。
- flush()
向文件写入缓冲中的所有数据。
最新文章
- linux iptables常用命令之配置生产环境iptables及优化
- ajex请求的数据 什么时候需用Json.parse()
- java基础-泛型3
- C feof
- SQL Server替换特殊字符
- WCF--提示:异常消息为“传入消息的消息格式不应为“Raw”。此操作的消息格式应为 'Xml', 'Json'。
- jQuery实现竖排菜单
- 边工作边刷题:70天一遍leetcode: day 85-2
- 60.ISE PhysDesignRules ERROR
- 简约的单页应用引擎:sonnyJS
- apache 多站点搭建
- Scut 上线后遇到的问题
- 【转】iOS申请发布证书-图文详解
- TensorFlow深度学习笔记 文本与序列的深度模型
- json 数组 对象 xml 之间转换(待补充)
- python操作mysql数据-执行语句返回值直接返回字典类型
- C语言 16进制与ascii码互转
- ASP.net MVC5 Code First填充测试数据到数据库
- idea 开发插件。
- CSP 通信顺序进程