您的位置:首页 > 编程语言 > Lua

Lua学习笔记之文件操作—io.open()、file:read()、require"nixio"

2017-01-11 18:05 791 查看
        以前遇到什么问题在CSDN上基本上都能找到答案,觉得这里头大神贼多。今天,我这个菜鸟也终于鼓起勇气,决定开始写博客了,人生中的第一次CSDN博客啊!对我来说是一个多么具有里程碑的时刻啊!所以,必须要多说几句话以示留念。

由于在工作中用到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的截图,看完之后会对加深对一些概念性东西的理解

判断是否允许用户访问文件,即用户对文件的访问权限

(好了,时间不早了,吃饭去咯



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐