Lua-文件操作
简单模式和完全模式
- 简单模式(simple model)拥有一个当前输入文件和一个当前输出文件,并且提供针对这些文件相关的操作。
- 完全模式(complete model) 使用外部的文件句柄来实现。它以一种面对对象的形式,将所有的文件操作定义为文件句柄的方法。
打开文件
1 |
file = io.open(filename [, mode]) |
mode 选项
| 模式 | 简介 |
|---|---|
| r | 只读,文件必须存在。默认。 |
| w | 只写,文件存在,则写入时覆盖原有内容。文件不存在,则创建文件。 |
| a | 附加写入,文件存在,则从文件末尾写入。文件不存在,则创建文件。 |
| b | 二进制模式,与r/w/a结合使用。 |
| + | 表示文件可读写,与r/w/a结合使用。 |
1 |
file01 = io.open("test.lua", "r")
|
从文件读取数据
1 |
file01 = io.open("test.lua", "r")
|
向文件写入数据
1 |
file01 = io.open("test.lua", "a")
|
关闭文件
1 |
file01 = io.open("test.lua", "r")
|
方法
简单模式,io的方法
调用方式:io.方法名()。如:io.read()
- read()
输入文件一行数据,并把游标指向下一行开始地址。
参数:
| 参数 | 说明 |
|---|---|
| “*l” | 读取下一行,在文件尾 (EOF) 处返回 nil。默认。 |
| “*n” | 读取一个数字并返回它。 |
| “*a” | 从当前位置读取整个文件。 |
| number | 返回一个指定字符个数的字符串,或在 EOF 时返回 nil。 |
- tmpfile()
返回一个临时文件句柄,该文件以更新模式(附加)打开,程序结束时自动删除。
- type(file)
检测file是否一个可用的文件句柄。
- flush()
向文件写入缓冲中的所有数据。
- lines(optional filename)
打开指定的文件filename为只读模式并返回一个迭代函数,每次调用将获得文件中的一行内容,当到文件尾时,将返回nil,并自动关闭文件。
若不带参数时io.lines() io.input():lines(); 读取默认输入设备的内容,但结束时不关闭文件
完全模式,文件句柄的方法
调用方式:文件句柄:方法名()。如:file:read()。
- read()
作用和参数与简单模式一致。
- seek(optional whence, optional offset)
设置和获取当前文件位置,成功则返回最终的文件位置(按字节),失败则返回nil加错误信息。
参数 whence 取值:
| 值 | 说明 |
|---|---|
| “cur” | 从当前位置开始。默认 |
| “set” | 从文件头开始 |
| “end” | 从文件尾开始 |
offset,偏移量,默认为0。
不带参数file:seek()则返回当前位置。
file:seek(“set”)则定位到文件头。
file:seek(“end”)则定位到文件尾并返回文件大小。
- flush()
向文件写入缓冲中的所有数据。
Lua-文件操作的更多相关文章
- Lua文件操作和串行化
function n_serialize(data) if type(data)=="number" then io.write(data,"\n") else ...
- 关于cocos2dx手游lua文件加密的解决方式
非常多使用cocos2dx+lua做游戏的同学.都会想到一个问题,我的游戏一旦公布,如何才干保证的我脚本代码不被破解.不泄露代码.尽管这和开源.共享的原则不合.可是代码也是coder的劳动成果,理应得 ...
- cocos2dx-lua 文件操作
print("开始") --检查文件是否存在 local path = "ABC.txt" local fileExist = cc.FileUtils:get ...
- 修改Unity中Lua文件的默认打开程序
项目中引用了XLua,而Lua文件又是以txt文件结尾的,当修改系统的扩展脚本编辑器为vs后双击lua文件(xx.txt)默认也使用vs打开了,无提示的黑白文本编辑 昨办? -. 后来看到网上有写Un ...
- Lua------------------改善Unity编辑器对Lua文件的支持
原创 2017年03月10日 18:44:22 标签: Unity / lua / 编辑器 952 当前版本的Unity(截至Unity5.5.x)中TextAsset类不支持后缀为lua的文件,将l ...
- lua常用操作
1 .Lua生成随机数: Lua 生成随机数需要用到两个函数:math.randomseed(xx), math.random([n [, m]]) 1. math.randomseed(n) 接收一 ...
- 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档
.net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...
- 野路子出身PowerShell 文件操作实用功能
本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...
- Node基础篇(文件操作)
文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...
- 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)
========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...
随机推荐
- java课程之团队开发冲刺阶段1.9
一.总结昨天进度 1.学习了简单的消息推送方法,并且能够使用进行每日定时推送 二.遇到的困难 1.在每日推送的过程中,程序必须被正常关闭,如果程序是被切到后天然后直接结束进程的话,每日推送的线程服务也 ...
- Nacos快速开始
Nacos是一个服务发现.配置管理和服务管理的组件. 说到服务注册与发现,我想到Eureka.Zookeeper 说到服务治理,我想到Dubbo 说到配置管理,我想到Apollo 作为后起之秀的Nac ...
- SQL语句、PL/SQL块和SQL*Plus命令之间的区别
SQL语句.PL/SQL块和SQL*Plus命令之间的区别 原文链接:https://blog.csdn.net/liuzhushiqiang/article/details/12320941 在 ...
- maxima画图
八卦 load(draw)$ draw2d( dimensions=[800,800], /*大小*/ ip_grid = [1000,1000], /*光滑一点*/ line_width= 1., ...
- js获取指定日期n天之后的日期
function addDays(date, days,seperator='-') { let oDate = new Date(date).valueOf(); let nDate = oDate ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL DELETE 语句
可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录. 可以在 mysql> 命令提示符或 PHP 脚本中执行该命令. 语法 以下是 SQL DELETE 语句从 ...
- javaweb04 ServletRequest&ServletResponse
WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个歌规则就是 HTTP协议HTTP协议是超文本传输协议,它是TCP/IP协议集中的一个应用层协议,用于定义WEB浏览器与WEB服 ...
- Python 安装modules问题及import问题
>>>modules问题 在学习Python的数据可视化时,安装了matplotlib,在安装完成后还特意在终端测试了一下,结果显示能正常import 但是在sublime Text ...
- Java 面向对象异常处理,finally,覆盖时异常特点,package,import,包之间的访问(10)
Java 面向对象异常处理, finally:final 关键字的用法参考http://www.cnblogs.com/itcqx/p/5541659.html 覆盖时异常特点,package,imp ...
- Java连载71-二分查找和Arrays工具类
一.二分法查找 1.二分法查找是建立在已经排序的基础之上的 2.程序分析是从下到大排序. 3.这个数组中没有重复的元素. package com.bjpowernode.java_learning ...