找回密码
马上加入

QQ登录

只需一步,快速开始

搜索
发新帖

0

收听

2

听众

108

主题
发表于 2024-6-20 22:40:43 | 查看: 68| 回复: 0
Lua 基础教学:第十五篇文件操作与 IO
在本篇文章中,我们将探讨 Lua 中的文件操作与 IO。文件操作是编程中的常见任务,Lua 提供了一套简单易用的 IO 库。
文件操作基础
Lua 提供了两种文件操作方式:简单模式和完全模式。
简单模式
简单模式通过全局的 io 库进行文件操作。常用函数包括:
  • io.open: 打开文件
  • io.read: 读取文件
  • io.write: 写入文件
  • io.close: 关闭文件

完全模式
完全模式使用文件句柄对象进行文件操作,提供了更细粒度的控制。
打开文件
使用 io.open 函数打开文件,返回一个文件句柄和一个错误消息:
local file, err = io.open("example.txt", "r")
if not file then
    print("Error opening file: " .. err)
else
    -- 操作文件
    file:close()
end
文件模式包括:
  • "r": 只读模式
  • "w": 写入模式(覆盖)
  • "a": 追加模式
  • "r+": 读写模式
  • "w+": 读写模式(覆盖)
  • "a+": 读写追加模式

读取文件
可以使用多种方式读取文件内容:
逐行读取local file = io.open("example.txt", "r")
if file then
    for line in file:lines() do
        print(line)
    end
    file:close()
end读取整个文件local file = io.open("example.txt", "r")
if file then
    local content = file:read("*a")
    print(content)
    file:close()
end读取指定字节数local file = io.open("example.txt", "r")
if file then
    local content = file:read(10)  -- 读取前 10 个字节
    print(content)
    file:close()
end写入文件
可以使用 io.open 以写模式打开文件,并使用 file:write 函数写入内容:
local file = io.open("example.txt", "w")
if file then
    file:write("Hello, Lua!\n")
    file:write("This is a new line.\n")
    file:close()
end追加文件
使用追加模式打开文件:
local file = io.open("example.txt", "a")
if file then
    file:write("Appending a new line.\n")
    file:close()
end文件指针
可以使用 file:seek 函数移动文件指针:
local file = io.open("example.txt", "r")
if file then
    file:seek("end", -10)  -- 移动到文件末尾前 10 个字节
    local content = file:read("*a")
    print(content)
    file:close()
end
file:seek 的第一个参数是位置模式,包括:
  • "set": 从文件开始位置移动
  • "cur": 从当前指针位置移动
  • "end": 从文件末尾位置移动

文件属性
使用 io.popen 函数可以执行系统命令并读取输出:
local handle = io.popen("ls")
local result = handle:read("*a")
print(result)
handle:close()完全模式示例
使用文件句柄对象进行文件操作:
local file = io.open("example.txt", "r+")
if file then
    local content = file:read("*a")
    print(content)
    file:write("\nAppending new content.")
    file:close()
end总结
在这篇教程中,我们介绍了 Lua 中的文件操作与 IO。我们学习了如何打开、读取、写入和追加文件,了解了文件指针的移动和文件属性的获取。通过这些功能,可以高效地进行文件操作和数据处理。在接下来的教程中,我们将探讨 Lua 的网络编程。
继续关注我们的 Lua 教程系列,如果你有任何问题或建议,请在评论区留言。
您需要登录后才可以回帖 登录 | 马上加入

QQ|Archiver|手机版|小黑屋|alg阿灵戈社区 ( 苏ICP备2023026137号-1|苏ICP备2023026137号-1 )

GMT+8, 2025-3-13 01:21 , Processed in 0.571853 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表