【12月更文挑战第04天】

简介: 【12月更文挑战第04天】

Lua的文件I/O操作可以通过两种模式进行:简单模式和完全模式。这两种模式提供了不同级别的灵活性和控制。

简单模式(Simple Model)

简单模式使用io.open函数打开文件,并设置当前输入文件(io.input)和当前输出文件(io.output)。这种模式适合进行简单的文件读写操作。

打开文件

file = io.open("filename.txt", "r")  -- 以只读模式打开文件

读取文件

local content = io.read()  -- 读取整个文件内容

写入文件

io.output("output.txt")  -- 设置当前输出文件
io.write("Hello, World!")  -- 写入内容

关闭文件

io.close(file)  -- 关闭文件

完全模式(Complete Model)

完全模式提供了更细粒度的控制,允许你直接操作文件句柄。这种模式适合进行复杂的文件操作,如同时处理多个文件。

打开文件

file = io.open("filename.txt", "r")  -- 以只读模式打开文件

读取文件

local content = file:read()  -- 读取整个文件内容

写入文件

local outputFile = io.open("output.txt", "w")  -- 以写入模式打开文件
outputFile:write("Hello, World!")  -- 写入内容
outputFile:close()  -- 关闭文件

关闭文件

file:close()  -- 关闭文件

完整项目示例

假设我们有一个项目,需要读取一个文本文件,处理其中的内容,并将结果写入另一个文件。

文件内容(input.txt)

Line 1
Line 2
Line 3

Lua脚本(process_file.lua)

-- 打开输入文件
local inputFile = io.open("input.txt", "r")

-- 打开输出文件
local outputFile = io.open("output.txt", "w")

-- 读取输入文件的所有内容
local content = inputFile:read("*a")  -- "*a" 表示读取整个文件

-- 处理内容(例如,反转每一行)
local lines = {
   }
for line in content:gmatch("[^\r\n]+") do
    table.insert(lines, line:reverse())
end

-- 将处理后的内容写入输出文件
for i, line in ipairs(lines) do
    outputFile:write(line .. "\n")
end

-- 关闭文件
inputFile:close()
outputFile:close()
目录
相关文章
|
7月前
|
存储 Linux Windows
【2月更文挑战第3天】C数据类型
在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。
43 0
|
16天前
【11月更文挑战第25天】
【11月更文挑战第25天】
23 0
|
2月前
|
消息中间件
【10月更文挑战第2天】确认机制(Acknowledgements)
【10月更文挑战第2天】确认机制(Acknowledgements)
|
1天前
【12月更文挑战第10天】
【12月更文挑战第10天】
48 32
|
4天前
|
存储 Java 索引
【12月更文挑战第07天】
【12月更文挑战第07天】
38 17
|
8天前
【12月更文挑战第03天】
【12月更文挑战第03天】
31 18
|
2天前
【12月更文挑战第09天】
【12月更文挑战第09天】
16 8
|
3天前
【12月更文挑战第08天】
【12月更文挑战第08天】
22 9
|
6天前
|
开发者 数据格式
【12月更文挑战第05天】
【12月更文挑战第05天】
13 5
|
5天前
|
开发者
【12月更文挑战第06天】
【12月更文挑战第06天】
10 2