了解Lua如何处理读取和写入数据。有些数据是临时的,存储在RAM中,只有在应用程序运行时才有意义。但是有些数据应该是持久的,存储在硬盘上以备后用。在编程时,无论是简单的脚本还是复杂的工具套件,都经常需要读写文件。有时该文件可能包含配置选项,有时该文件是您的用户使用您的应用程序创建的数据。每种语言处理这个任务的方式不同,本文演示了如何使用Lua处理文件数据。安装Lua如果您使用的是Linux,则可以从发行版的软件存储库安装Lua。在macOS上,您可以从MacPorts或Homebrew安装Lua。在Windows上,您可以从Chocolatey安装Lua。安装Lua后,打开您最喜欢的文本编辑器并准备开始。使用Lua读取文件Lua使用io库进行数据输入和输出。下面的示例创建一个名为ingest的函数来从文件中读取数据,然后使用:read函数对其进行解析。在Lua中打开文件时可以启用多种模式。因为我只需要从这个文件中读取数据,所以我使用r(表示“读取”)模式:functioningest(file)localf=io.open(file,"r")locallines=f:read("*all")f:close()return(lines)endmyfile=ingest("example.txt")print(myfile)在此代码中,请注意变量myfile是为触发摄取函数而创建的,因此它接收函数返回的任何内容。ingest函数从名为lines的变量返回文件中的行数(0。当最后一步打印myfile变量的内容时,文件中的行数出现在终端中。如果文件example.txt包含配置选项,然后我会编写一些额外的代码来解析该数据,可能使用另一个Lua库,具体取决于配置是存储为INI文件还是YAML文件或其他文件。如果数据是SVG图形,我d编写额外的代码来解析XML,可能使用Lua的SVG库。换句话说,您的代码读取的数据一旦加载到内存中就可以进行操作,但是它们都需要加载io库。使用Lua将数据写入文件无论您是想存储用户使用您的应用程序创建的数据,还是只是关于用户在应用程序中所做的事情的元数据(例如,游戏保存或最近播放的歌曲),都有很多存储的好理由供以后使用的数据。在Lua中,这是通过io库完成的,它打开一个文件,向其中写入数据,然后关闭文件:functionexgest(file)localf=io.open(file,"a")io.output(f)io.write("helloworld\n")io.close(f)endexgest("example.txt")为了从文件中读取数据,我以r模式打开文件,但是这次我使用了一个(for"Append")将数据写入文件末尾。因为我正在向文件写入纯文本,所以我添加了自己的换行符(/n)。通常,您可以使用附加库来写入特定格式,而不是将原始文本写入文件。例如,您可以使用INI或YAML库来帮助编写配置文件,使用XML库来编写XML,等等。文件模式在Lua中打开文件时,有一些安全措施和参数来定义文件的处理方式。默认为r,它允许您只读数据:r只读w如果文件不存在,则覆盖或创建一个新文件。r+读取和覆盖。a向文件追加数据,如果文件不存在则创建一个新文件。a+读取数据,将数据附加到文件,或者如果文件不存在则创建一个新文件。还有其他一些(例如b表示二进制格式),但这些是最常见的。有关完整文档,请参阅Lua.org/manual上出色的Lua文档。Lua和文件与其他编程语言一样,Lua具有广泛的库支持以访问文件系统以读写数据。由于Lua具有一致且简单的语法,因此很容易对任何格式的文件数据进行复杂的处理。尝试在您的下一个软件项目中使用Lua,或者将其用作C或C++项目的API。
