lua文件读写

2023-10-27

文件读写

文件读写对制作游戏很有帮助。可以调用别的文件中的代码,保存最高分、游戏存档、玩家状态等信写到文件中。

首先,让我们看一个简单的命令:dofile。这个命令会读入另一个文件的代码并立即执行。

代码:

dofile("./test.lua")

很简单的命令。注意 ./ 是指根目录,不是子目录。如果是子目录,应该这样用:

代码:

dofile("./files/test.lua")

  那么,如果我们的文件 test.lua 包含下述代码:

代码:

playerx = 10 playery = 20 enemyx = 40 enemyy = 50

  一旦我们用 dofile 调用这个文件,这些变量将立即得到声明。文件不是非得用 lua 后缀,txt 或其他后缀都可以。

从文件中读取一行:

  假设你有一个很多行文本的文件,你想从中读取一行,并打印到屏幕上。为此我们可以使用 io.open() 命令打开文件并读取。

  命令的语法是 io.open(filename, mode)。此处我们将使用 r 作为 mode 的值,意指读取(read)模式。作为参考,下面是所有可用模式的列表:

引用:

r - 读取模式w - 写入模式(覆盖现有内容)

a - 附加模式(附加在现有内容之后)

b - 二进制模式

r+ - 读取更新模式(现有数据保留)

w+ - 写入更新模式(现有数据擦除)

a+ - 附加更新模式(现有数据保留,只在文件末尾附加)

第一件要做的事情就是打开文件并存为一个变量。看下面。

代码:

file = io.open("testRead.txt", "r")

  现在我们的文件 testRead.txt 已打开并处于读取模式。接着我们使用 read() 命令读取文件中的单行内容存为另一个变量。

代码:

ourline = file:read()

  这将读取我们的文本文件的第一行。下一次我们使用 read() 命令它将读取第二行。再下一次它会读取第三行,依此类推。

  请注意,此命令前的 file 是我们之前打开文件并保存的变量名,你可以使用任何其他名字。file.read() 还可以使用下列任一个参数,只要用引号括起来放入括号里就可以。

引用:

*n - 读取一个数字并返回它。例:file.read("*n")

*a - 从当前位置读取整个文件。例:file.read("*a")

*l - (默认) - 读取下一行,在文件尾 (EOF) 处返回 nil。例:file.read("*l")

number - 返回一个指定字符个数的字符串,或在 EOF 时返回 nil。例:file.read(5)

既然我们已经读取到所要的那一行,我们需要关闭打开的文件,像这样:

代码:

file:close()

  现在要打印我们的文件至屏幕我们只要这么做:

代码:

screen:print(10,10,ourline,white)

读取所有行  

要读取一个文件的所有行,你可以在一个 for 语句中使用上述技巧。请看下述代码:

代码:

y = 10

file = io.open("testRead.txt","r")

for line in file:lines() do

     y = y + 10

     screen:print(100,y,line,white)

endf

ile:close()

  这个代码设置了一个起始值 y 用于打印,这样它可以在屏幕不同的纵坐标打印每一行。照例,先打开文件。然后是 for 语句,这句代码是说文件的行数有多少下面的代码就执行几次。我们的 y 坐标则每次循环加上 10 以便打印命令可以打印下一行。

写入文件(覆盖)

  写入文件的方式大致相同。下面的代码将覆盖任何先前写入文件的内容:

代码:

file = io.open("testRead.txt","w")file:write("hello")file:close()

  注意,我们这次使用了 w 模式,而不是 r 模式,因为我们是要写入而不是读取。我们用 file:write() 写入括号里作为参数的、用引号括起来的文本。你也可以用变量替代。如果你使用变量就不要用引号,请看下例:

代码:

file = io.open("testRead.txt","w")myText = "Hello"file:write(myText)file:close()

写入文件(附加)

  你可以使用附加模式,这样就可以在写入文件时将新内容附加在已有文本末尾,而不是删除原来的。做法与上面基本相同,除了模式换成“附加”之外。请看代码:

代码:

file = io.open("testRead.txt","a")myText = "\nHello"file:write(myText)file:close()


ref:http://hi.baidu.com/f_fx/blog/item/b48e44df62b5d40e4954032c.html


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lua文件读写 的相关文章

  • 找不到文件异常..但它就在那里

    嘿 这将是那些愚蠢的问题之一 我试图在本地系统上获取一个文件 但我不断收到FileNotFoundException thrown 请有人纠正我 if File Exists C logs hw healthways prod 2009 0
  • 从 python 执行 C++ 代码

    我是 python 的初学者 我不知道这是否可行 我在 python 中有一个简单的循环 它为我提供当前目录中的所有文件 我想要做的是从 python 执行我之前在目录中的所有这些文件上编写的 C 代码 建议的 python 循环应该是这样
  • 打开文件路径在 python 中不起作用[重复]

    这个问题在这里已经有答案了 我正在编写一个数据库程序 personica 是我的测试主题 我通常在文件路径的位置有一个变量 但出于测试和演示的目的 我只有一个字符串 在我的计算机上的这个确切位置有一个文本文件 顺便说一句 因为我很偏执 所以
  • 如何在 Windows 7 中使用 Python 廉价地创建非常大的文件? [复制]

    这个问题在这里已经有答案了 可能的重复 在Windows系统上快速创建大文件 https stackoverflow com questions 982659 quickly create large file on a windows s
  • 是否可以使用.NET 跟踪文件操作?

    当以某种方式调用文件操作 例如打开或关闭 时 我是否可以在操作系统继续请求之前处理它 如果可能的话可以通过以下方式取消它 NET http en wikipedia org wiki NET Framework 如果 NET没有这样的能力
  • 从通知中打开文件

    我从服务器下载一个文件 对于此操作 我显示了进度不确定的通知 下载文件后 我想通过单击通知来打开它 我获得了扩展名并尝试使用以下命令打开它intent像这样 public static Intent openFile Context con
  • Openresty 中的并发模型是什么?

    我很难理解 openresty 或 nginx 的并发模型 我读了Lua变量作用域 http wiki nginx org HttpLuaModule Lua Variable Scope 它解释了变量的生命周期 但它没有说明对它们的并发访
  • PHP将数据写入文件中间而不重写文件的最佳方法是什么

    我正在 php 1GB 中处理大型文本文件 我正在使用 file get contents file txt NULL NULL 100000000 100 要从文件中间获取数据 但如果我想将文件中的数据更改为与原始数据不同的更改 我将不得
  • 视图无法解析为类型

    这里的视图似乎有什么问题 我该如何解决它 错误 视图无法解析为类型 public void onItemClick AdapterView
  • PHP 文件上传帮助

    div align center div 这是我的代码
  • 如何根据扩展名获取文件类型信息? (不是 MIME)在 c# 中

    如何获取基于扩展名的一般文件类型描述 如资源管理器 所以不是 MIME 而是最终用户看到的信息 doc Microsoft Office Word 97 2003 文档 zip ZIP 文件 avi 视频文件 我怎样才能获得似乎可用的 辅助
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • C# 将数据写入 CSV 文件

    我正在尝试写入csv使用 C 语言逐行文件 这是我的功能 string first reader 0 ToString string second image ToString string csv string Format 0 1 n
  • Lua中有状态迭代器和无状态迭代器的区别

    Lua中无状态和有状态迭代器有什么区别 请详细解释一下 什么时候需要使用无状态 什么时候需要使用另一种 我需要例子来理解这个概念 首先让我们就一个定义达成一致 在 Lua 中 迭代器是function 类似对象 每次调用时都会返回序列中的下
  • gsub 的转义字符串

    我读了一个文件 local logfile io open log txt r data logfile read a print data output n w r 1 2 n t x re S 是的 日志文件看起来很糟糕 因为它充满了各
  • 使用 html5 分块上传文件

    我正在尝试使用 html5 的文件 API 分块上传文件 然后在服务器端用 php 重新组装它 我正在上传视频 但是当我在服务器端合并文件时 大小增加了 并且它变成了无效文件 请注意 以下 html5 代码仅适用于 chrome 浏览器 在
  • 使用Git记录文件复制操作

    当我使用 git mv 在 git 中移动文件时 状态显示该文件已被重命名 即使我更改了某些部分 它仍然被认为几乎是相同的东西 这很好 因为它让我可以跟踪它的历史记录 当我复制文件时 原始文件有一些历史记录 我想将其与新副本关联起来 我尝试
  • C#:如何使用 SHOpenFolderAndSelectItems [重复]

    这个问题在这里已经有答案了 有人可以举例说明如何使用 shell 函数吗SH打开文件夹并选择项目 http msdn microsoft com en us library bb762232 VS 85 aspx来自 C 我不太明白如何使用
  • 从文本文件中删除特定字符

    我对 Python 和编码都很陌生 我当时正在做一个小项目 但遇到了一个问题 44 1 6 23 2 7 49 2 3 53 2 1 68 1 6 71 2 7 我只需要从每行中删除第三个和第六个字符 或者更具体地说 从整个文件中删除 字符
  • 是否需要关闭没有引用它们的文件?

    作为一个完全的编程初学者 我试图理解打开和关闭文件的基本概念 我正在做的一项练习是创建一个脚本 允许我将内容从一个文件复制到另一个文件 in file open from file indata in file read out file

随机推荐

  • 参考文献必备神器:这个插件能快速知道收藏的论文是否靠谱

    贾浩楠 发自 凹非寺 量子位 报道 公众号 QbitAI AI读文献 又有新的黑科技上线了 专攻AI分析论文内容的Scite最近刚刚开源了scite zotero plugin工具 scite zotero plugin能自动将论文中的引用
  • 97 条 Linux 运维工程师常用命令总结

    ls mv cp scp rm touch pwd cd mkdir rmdir echo cat more less nl head tail vi vim which whereis locate 数据库快速搜寻档案 find grep
  • “泰迪杯”挑战赛-通过图像处理和数据挖掘实现车辆检测与跟踪

    目 录 挖掘目标 分析方法与过程 2 1 总体流程 2 2 具体步骤 2 3 结果分析 结论 参考文献 1 挖掘目标 在建设平安城市的进程中 安全是政府日常管理工作中的重要任务 随着城市报警和监控系统的建设 对于监控数据的分析也日显重要 本
  • powerdesigner物理视图 导出建库脚本(mysql)

    第一步 设置powerdesigner 物理视图 导出数据库类型 菜单栏 DataBase 数据库 generate Database 第二步 设置Powerdesigner 物理视图 导出数据库语言类型 第三步 根据第二步的相关配置 进行
  • web.xml文件详解

    前言 一般的web工程中都会用到web xml web xml主要用来配置 可以方便的开发web工程 web xml主要用来配置Filter Listener Servlet等 但是要说明的是web xml并不是必须的 一个web工程可以没
  • Python错误提示:TypeError: sequence item 2: expected str instance, int found

    我们知道在对list进行拼接 对字符串进行拼接的时候可以使用 join 但是在将list进行拼接转换为字符串的时候报错 大家可以对比看一下 list01 name age 20 s join list01 print s try list0
  • java8之lambda表达式简介

    文章目录 1 概念 2 基础语法 2 1 语法格式一 2 2 语法格式二 2 3 语法格式三 2 4 语法格式四 2 5 语法格式五 2 6 语法格式六 3 Lambda 表达式需要 函数式接口 的支持 4 java内置四大核心函数式接口
  • python的split分割数组_NumPy数组的分割

    在 NumPy 中 利用 split hsplit 和 vsplit 等函数可实现数组的分割操作 split 函数 该函数可沿特定的轴将数组分割为子数组 使用 split 函数的方法如下 numpy split arr indices or
  • K8S安装Master教程(亲测成功)

    配置hosts vim etc hosts 追加如下内容 192 168 18 10 k8s master 192 168 18 11 k8s node1 192 168 18 12 k8s node2 192 168 18 13 k8s
  • 搭建nginx+php后访问不到项目

    记在虚拟机搭建php nginx mysql踩到的坑 首先因为工作原因 离开了上家公司 然后入职xx后 由于没有开发机只能自己搭建了一个虚拟机 搭建好后使用一键安装式工具安装了lnmp环境 之后访问nginx是可以访问通的 但是指定了项目目
  • TCP、UDP、HTTP、SOCKET之间的区别

    IP 网络层协议 TCP和UDP 传输层协议 HTTP 应用层协议 SOCKET TCP IP网络的API TCP IP代表传输控制协议 网际协议 指的是一系列协议 TCP和UDP使用IP协议从一个网络传送数据包到另一个网络 把IP想像成一
  • 二手服务器还是组装机,我表弟不懂电脑,老板竟然给他组装这种电脑:没坑人,明码标价!...

    说到组装电脑 大家都不陌生了 它是多硬件组合的产物 它对硬件搭配有要求 对于动手能力也有一定的要求 于是很多朋友为了省麻烦就会去找熟人或者是电脑店进行咨询组装电脑 前几天 我的表弟就在他居住附近的一家电脑店咨询组装了一台电脑 最后发现被坑惨
  • 原创打造 Claude网页 接口

    先进入App unavailable Anthropic 新建聊天聊起来 在聊之前就要打开f12 监听请求 相关参数打开f12即可找到 注意 需要在打开f12后发送几条信息给claude才有相关链接显示 这两个参数就是我们需要的 cooki
  • Code Blocks IDE在linux下添加include & lib路径

    摘自 url http bbs csdn net topics 350101552 url size large 第一步 编译第三方库 得到头文件和库 例如路径关系 D MyLib include D MyLib lib 在include中
  • 抖音直播间弹幕rpc学习

    目标url 随便找个直播间即可 https live douyin com 198986091107 接口分析 首先并没有在xhr下找到对应的接口 因为采用了websocket来传输信息 切换到ws即可看到 消息下 可以看到16进制的数据在
  • 连接被拒绝 因为没有授权此用户账户进行远程登录

    背景 有时想远程连接某服务器进行操作 但是远程登陆时 却报错 解决办法 在服务器上进行设置 允许用户登录 步骤 1 用允许登录的用户 远程连接服务器 在这里用v liyh登录 点击 开始 图标 运行 如图 在对话框中输入 mstsc 如图
  • 【Linux命令详解

    文章标题 简介 一 参数列表 二 使用介绍 1 显示文件内容 2 创建文件 3 连接文件 4 显示行号 5 压缩空行 6 显示特殊字符 7 显示行号和特殊字符 8 从标准输入读取 9 显示文件开头或结尾 10 备份文件 11 显示文件内容至
  • Redis 配置详解 —— 全网最新最全

    文章目录 一 撰文目的 二 配置详解 1 EXAMPLE 概要说明 2 INCLUDES 配置包含 3 MODULES 加载模块 4 NETWORK 网络配置 5 TLS SSL 通讯协议 6 GENERAL 常规配置 7 SNAPSHOT
  • 【合作 】联通、壳牌、联想、国金证券等众多企业签约 Eolink !

    联通 壳牌 联想 华润置地 中国铁塔等多家知名企业签约 Eolink 携手落地 API 全生命周期管理 感谢广大企业对 Eolink 的信任和选择 Eolink 致力于为企业提供最全面的 API 研发管理解决方案 提供高效 可靠的工具以及服
  • lua文件读写

    文件读写 文件读写对制作游戏很有帮助 可以调用别的文件中的代码 保存最高分 游戏存档 玩家状态等信写到文件中 首先 让我们看一个简单的命令 dofile 这个命令会读入另一个文件的代码并立即执行 代码 dofile test lua 很简单