Lua学习笔记之文件操作—io.open()、file:read()、require"nixio"
2017-01-11 18:05
791 查看
以前遇到什么问题在CSDN上基本上都能找到答案,觉得这里头大神贼多。今天,我这个菜鸟也终于鼓起勇气,决定开始写博客了,人生中的第一次CSDN博客啊!对我来说是一个多么具有里程碑的时刻啊!所以,必须要多说几句话以示留念。
由于在工作中用到Lua+OpenWrt,但是我对这两个东西完全不了解,刚开始一直处于完全懵逼的状态,经过一段时间的摸索后,终于发现了一些门道。这里主要写的是Lua中与文件读写有关的内容,我贴图的主要原因是想强调每个函数执行之后的返回值!返回值!返回值!为了能具象的看见返回值!因为这些返回值经常用来做if判断的条件,而lua的判断又灵活,数字字母布尔值一切非nil的值都为true。
参数:
1)file_path:文件的实际路径,如"/etc/opkg"
2)"r/w":文件的打开模式,"r"-打开文件+读取文件内容,"w"-打开文件+写内容到文件(注:r-read,w-write,这很好理解,这俩单词使用频率很高)
返回值:文件及其的描述,"文件及其的描述"究竟是什么,看下面的代码和图,很直观
参数:"*a"-读取全部,默认只读取一行
返回值:读取的内容
看下面的代码和图:
nixio.fs.acess(path)
作用:判断path路径下的文件是否可访问
参数:path-待访问的文件路径
返回值:true or nil
看下面的代码和图:
(好了,时间不早了,吃饭去咯
![](https://oscdn.geek-share.com/Uploads/Images/Content/201603/899229cfab2c02d614490485cabb781b.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201603/899229cfab2c02d614490485cabb781b.gif)
)
由于在工作中用到Lua+OpenWrt,但是我对这两个东西完全不了解,刚开始一直处于完全懵逼的状态,经过一段时间的摸索后,终于发现了一些门道。这里主要写的是Lua中与文件读写有关的内容,我贴图的主要原因是想强调每个函数执行之后的返回值!返回值!返回值!为了能具象的看见返回值!因为这些返回值经常用来做if判断的条件,而lua的判断又灵活,数字字母布尔值一切非nil的值都为true。
1.io.open(file_path,"r/w")
作用:打开一个文件(要指明文件的路径、打开的模式)参数:
1)file_path:文件的实际路径,如"/etc/opkg"
2)"r/w":文件的打开模式,"r"-打开文件+读取文件内容,"w"-打开文件+写内容到文件(注:r-read,w-write,这很好理解,这俩单词使用频率很高)
返回值:文件及其的描述,"文件及其的描述"究竟是什么,看下面的代码和图,很直观
--以只读模式打开文件
local flag_isfile = io.open(file_path,"r")
--将返回值打印出来 print("io.open(file_path,".."r"..")--->"..tostring(flag_isfile))其中,file (0x4bca40) 就是所谓的“文件及其的描述”
2.file:read("*a")
作用:读取文件的内容参数:"*a"-读取全部,默认只读取一行
返回值:读取的内容
看下面的代码和图:
print("begin to read file ... ...") --read(),默认状态,只读一行 print("默认状态,只读一行\n"..tostring(flag_isfile:read()).."\n") --read("*a"),读全部 print("*a,".."读全部\n"..tostring(flag_isfile:read("*a")))
3.require"nixio"
作用:导入Lua函数库,因为要用到里面的函数(这里是Lua的API,有需要同学可以的去看看点击打开链接)nixio.fs.acess(path)
作用:判断path路径下的文件是否可访问
参数:path-待访问的文件路径
返回值:true or nil
看下面的代码和图:
--导入nixio require"nixio" --待访问的文件的路径 local file_path = "/etc/easy-rsa/msg.lua" --nixio.fs.access() local exe_result_access = nixio.fs.access(file_path) --打印返回值 print("nixio.fs.access()的返回值-->"..tostring(exe_result_access))
4.补充:关于nixio.fs.access()
以下两张图是API的截图,看完之后会对加深对一些概念性东西的理解
判断是否允许用户访问文件,即用户对文件的访问权限(好了,时间不早了,吃饭去咯
![](https://oscdn.geek-share.com/Uploads/Images/Content/201603/899229cfab2c02d614490485cabb781b.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201603/899229cfab2c02d614490485cabb781b.gif)
)
相关文章推荐
- [学习笔记]Java文件IO操作------实现对文件的读取与写入
- 【UNIX环境高级编程】文件 IO 操作 一 ( open | close | creat | lseek | write | read )
- 【Python学习笔记】IO编程:操作文件和目录
- [Ruby笔记]4. ruby 读写文件 File open read write new
- 树莓派学习笔记——使用文件IO操作GPIO SysFs方式
- Linux-文件操作(open、write、read、close、iotcl)
- Python学习笔记015——文件file的常规操作之三(标准输入输出文件)
- andriod学习——Content的openFileOutput 和 openFileInput操作文件
- Python学习笔记015——文件file的常规操作之一(文本文件)
- Jsoup学习笔记7之File类操作文件:复制只包含指定类型文件的文件夹,并在新创建的同名文件夹中创建同名的另一种格式的文件
- andriod学习——Content的openFileOutput 和 openFileInput操作文件
- 树莓派学习笔记——使用文件IO操作GPIO SysFs方式
- 黑马程序员--学习笔记--IO流File文件操作
- Python学习笔记015——文件file的常规操作之四(输入重定向)
- 关于写入文件缓存时报"java.io.FileNotFoundException open failed (is a director)"错误的解决方法
- Java学习笔记——File类文件管理及IO读写、复制操作
- 黑马程序员——JAVA学习笔记十一(文件操作File)
- Python学习笔记015——文件file的常规操作(二进制文件)
- 【Java学习笔记】18.Java 流(Stream)、文件(File)和IO
- andriod学习——Content的openFileOutput 和 openFileInput操作文件