当前位置: 首页 > news >正文

3.4 Lua代码中的文件操作

1.代开文件

io.open(filename, mode) 接口中的 filename 参数是需要打开文件的路径,mode 是需要打开文件模式,有如下几种模式:

---|> "r" # 只读模式。
---| "w" # 只写模式。
---| "a" # 追加模式。
---| "r+" # 更新模式,保留所有原有数据。
---| "w+" # 更新模式,清除所有原有数据。
---| "a+" # 追加更新模式,保留原有数据,只允许在文件末尾写入。
---| "rb" # 只读模式。(二进制模式)
---| "wb" # 只写模式。(二进制模式)
---| "ab" # 追加模式。(二进制模式)
---| "r+b" # 更新模式,保留所有原有数据。(二进制模式)
---| "w+b" # 更新模式,清除所有原有数据。(二进制模式)
---| "a+b" # 追加更新模式,保留原有数据,只允许在文件末尾写入。(二进制模式)

文件在打开成功后会返回文件的句柄

2.输入重定向

io.input(file) ,该接口是将打开的文件输入重定向,可以将读取文件中的数据,其中 file 为打开文件返回的句柄

3.输出重定向

io.output(file) 该接口是将打开的文件输出重定向,可以将数据写入到文件当前光标所在的位置,其中 file 为打开文件返回的句柄

4.读取文件数据

io.read(...) 该接口是读取文件中的数据,依据填入参数的不同读取的数据也不相同,输入参数类型如下:

---| "n" # 读取一个数字的字符并将其返回。
---| "a" # 读取整个文件。
---|> "l" # 读取下一行(跳过行尾符)。
---| "L" # 读取下一行(保留行尾符)。

5.写入数据到文件

io.write(...) 该接口是写入数据到文件中去,参数是需要写入的数据

6.关闭文件

io.close(file) 该接口是关闭文件的接口,填入的参数是需要关闭文件的句柄

fl=io.open("file/file.txt","r+");if fl==nil thenprint("读取文件失败");os.exit();
endio.input(fl);--将文件句柄加入到输入中print(io.read("a"));--读取一行io.write("asd");--这样会输出到控制台中,不会输入到文件中io.output(fl);--将文件句柄放到输出中,
io.write("1234567890");--输出数据到文件中
--print(io.read("l"));--读取不到数据,文件中的光标处于最后,没有任何数据
io.close();

7. 设置光标的位置

file:seek(whence, offset) 该函数是设置光标所在的位置,基于 whence 的位置偏移 offset ;如果什么也不填会返回当前光标所在的位置

fl=io.open("file/file.txt","r+");if fl==nil thenprint("读取文件失败");os.exit();
endprint(fl:seek());
io.input(fl);--将文件句柄加入到输入中print(io.read(3));
print(fl:seek("cur",3));--将在当前光标的位置往后移动3个字符
print(io.read("l"));
io.close();

8.文件自己操作自己

fl=io.open("file/file.txt","r+");if fl==nil thenprint("读取文件失败");os.exit();
endprint(fl:seek());--读取当前光标位置
io.input(fl);--将文件句柄加入到输入中print(io.read(3));--读取三个字节数据,光标后移3个字节
print(fl:seek("cur",3));--将在当前光标的位置往后移动3个字符
print(io.read("l"));--输出当前行,在当前光标后的数据
fl:seek("set",0);--设置光标到文件开头
fl:write("aa\n679");--往文件当前光标位置输入数据
fl:seek("set",0);
print(fl:read("a"));--输出文件的所有数据
fl:write("ooooooooooo\n777777777777777");--往文件当前光标位置输入数据
fl:seek("set",0);
print(fl:read("a"));--输出文件的所有数据
io.close();

9.文件循环输出

fl=io.open("file/file.txt","r+");if fl==nil thenprint("读取文件失败");os.exit();
endio.input(fl);--将文件句柄加入到输入中for str in fl:lines() doprint(str);
end
print("")for str in io.lines("file/file.txt") doprint(str);
endio.close();

http://www.dtcms.com/a/565769.html

相关文章:

  • 高盛西湖智谷引进高科技企业 聚集产业高质量发展
  • 行业网站建设公司自己怎么做一个企业官网
  • Hercules
  • Python从入门到精通:(2)Python 核心进阶教程从数据结构到面向对象
  • 普洱专业企业网站建设制作书签图片大全简单漂亮
  • 违法网站开发者网页在线短网址生成器
  • HWiNFO下载和安装图文教程(附安装包,非常详细)
  • 【Unity基础详解】(6)Unity核心:物理系统
  • LLM基础·Huggingface使用教程
  • 新手学做网站百度云做塑胶网站需要什么
  • Oracle故障处理|【实战笔记】一次“删不掉的表”:全局临时表 ORA-14452 故障复盘
  • npm install core-js不成功
  • 【论文精读】SimDA:用于高效视频生成的简单扩散适配器
  • 许昌哪个网站做苗木百度网站介绍显示图片
  • CLIP:打破模态壁垒,重塑AI理解世界的方式
  • firewall-cmd 防火墙操作技巧详解(适用于 CentOS / RHEL 系列)
  • 视频融合平台EasyCVR结合视频智能分析技术构建高空抛物智能监控系统,守护“头顶上的安全”
  • python node 网站开发广东省建设工程执业中心网站
  • ModelEngine智能体全流程体验评测:从创建到部署的深度实践
  • 青岛北京网站建设公司哪家好一万元小型办厂设备
  • PHP:一种强大的服务器端脚本语言
  • 深入了解linux网络—— 守护进程
  • JIS A 5908-2022 刨花板检测
  • 新余网站网站建设网站建设岗位有哪些
  • C# 基于halcon的视觉工作流-章56-彩图转云图
  • 住房城乡建设部办公厅网站网址大全导航
  • 做一个网站的费用构成wordpress 表格 链接地址
  • Vision Transformer(ViT)保姆级教程:从原理到CIFAR-10实战(PyTorch)!
  • 『 QT 』QT QWidget 控件属性全解析 (三)
  • 关于Java EE应用中xml解析类的问题