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

        以前遇到什么问题在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的截图,看完之后会对加深对一些概念性东西的理解

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








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

你可能感兴趣的:(Lua学习笔记之文件操作—io.open()、file:read()、require"nixio")