将文本文件分配给一个变量。

是否可以将文本文件分配给变量,并通过调用变量来访问该文件?如果可以,该如何做呢?

点赞
用户1009479
用户1009479

使用 IO library

local input = assert(io.open(inputfile, "r"))  <!-- 打开输入文件 -->
local data = f:read("*all")  <!-- 读取文件中的所有内容 -->
--对数据进行一些处理
local output = assert(io.open(outfule, "w"))  <!-- 打开输出文件 -->
output:write(data)  <!--写入数据到输出文件 -->
input:close()  <!-- 关闭输入文件 -->
output:close()  <!--关闭输出文件 -->
2013-07-15 14:37:54
用户2583826
用户2583826

假设你想要从一个函数中实现这些操作,你可以使用以下代码:

function writeToFile(_fileName) -- _fileName 是想要写入的文件名
        local file = io.open(_fileName, "w")
        file:write("This is a string that will be written to the file")
        file:write("This is a second string")
        file:flush( ) -- 保存内容
        file:close( ) -- 停止访问文件
end

如果你只想读取文件,那么你只需要使用以下代码:

function readFromFile(_fileName)
    local file = io.open(_fileName, "r")
    for line in file:lines() do
       print(""..line.."\n")
    end
end
2013-07-15 14:59:24
用户107090
用户107090

如果您字面上的意思是“调用变量”,那么请尝试以下代码:

local filename = "/etc/passwd"
local f = assert(io.open(filename,"r"))
getmetatable(f).__call = f.read

repeat
        local s = f()
        print(s)
until s == nil
2013-07-15 15:51:06