类型 函数 库 io.* 返回值 对象 修订版 版本 2024.3703 关键词 io、open、file 另请参阅 io.close() io.read() 
此函数以字符串(默认)或二进制模式打开文件,以便进行读取或写入。它返回一个新的文件句柄或(如果发生错误)nil 加一条错误消息。此函数还可用于创建新文件。
io.open( file [, mode] )
对象。要打开的文件。你必须使用 system.pathForFile() 来创建文件名和路径到 system.ResourceDirectory、system.DocumentsDirectory、system.ApplicationSupportDirectory、system.TemporaryDirectory 或 system.CachesDirectory常量。
字符串。确定用于在哪个文件模式中打开文件。模式字符串可以是以下任何一个
"r" — 阅读模式(默认);文件指针置于文件的开始处。
"w" — 只写模式;如果文件存在,则覆盖该文件。如果文件不存在,则创建一个新文件来写入。
"a" — 追加模式(只写);如果文件存在,文件指针将位于文件的结尾处(文件处于追加模式)。如果文件不存在,则创建一个新文件来写入。
"r+" — 更新模式(读/写);所有先前数据都将被保留。文件指针将位于文件开头。如果文件存在,只有当你明确写入时才会覆盖该文件。
"w+" — 更新模式(读/写);所有先前数据都将被删除。如果文件存在,则覆盖该文件。如果文件不存在,则创建一个新文件来进行读写。
"a+" — 追加更新模式(读/写);先前数据将被保留,且仅允许在文件尾部进行写入。如果文件存在,文件指针将位于文件的结尾处(文件以追加模式打开)。如果文件不存在,则创建一个新文件来进行读写。
模式字符串还可以在末尾加一个 'b',这在某些系统中需要,以便以二进制模式打开文件。此字符串完全是标准 C 函数 fopen 中使用的那样。
出于安全原因,您不允许在 system.ResourceDirectory (存储应用程序的目录;您的项目目录;main.lua 所在的位置)中写入文件。在 system.pathForFile() 函数中打开文件进行写入时,您必须指定 system.DocumentsDirectory、system.TemporaryDirectory 或 system.CachesDirectory 参数。
-- Path for the file to read
local path = system.pathForFile( "myfile.txt", system.DocumentsDirectory )
-- Open the file handle
local file, errorString = io.open( path, "r" )
if not file then
    -- Error occurred; output the cause
    print( "File error: " .. errorString )
else
    -- Output lines
    for line in file:lines() do
        print( line )
    end
    -- Close the file handle
    io.close( file )
end
file = nil