美文网首页Luat开源硬件
Luat实例教程:系统文件读写

Luat实例教程:系统文件读写

作者: Luat物联网通信模块 | 来源:发表于2018-03-23 13:22 被阅读2次

本教程目的:开发者可以将数据保存在系统里,即使断电数据也不会丢失。

Lua文件读写的API使用方法查阅Lua io
文件读写模式有以下几种:

模式 描述
r 以只读方式打开文件,该文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
r+ 以可读写方式打开文件,该文件必须存在。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a+ 与a类似,但此文件可读可写
b 二进制模式,如果文件是二进制文件,可以加上b

1、打开demo/fs,打开test.lua

module(...,package.seeall)--所有程序可见

local USER_DIR_PATH = "/user_dir"

--[[该demo演示四种接口,第一种readfile(filename)读文件,第二种writevala(filename,value),写文件内容,附加模式,
第三种function writevalw(filename,value),写文件内容,覆盖模式,第四种deletefile(filename),删除文件。--]]

--[[
    函数名:readfile(filename)
    功能:打开所输入文件名的文件,并输出储存在里面额内容
    参数:文件名
    返回值:无                     ]]
local function readfile(filename)--打开指定文件并输出内容
    
    local filehandle=io.open(filename,"r")--第一个参数是文件名,第二个是打开方式,'r'读模式,'w'写模式,对数据进行覆盖,'a'附加模式,'b'加在模式后面表示以二进制形式打开
    if filehandle then          --判断文件是否存在
        local fileval=filehandle:read("*all")--读出文件内容
      if  fileval  then
           print(fileval)  --如果文件存在,打印文件内容
           filehandle:close()--关闭文件
      else 
           print("文件为空")--文件不存在
      end
    else 
        print("文件不存在或文件输入格式不正确") --打开失败  
    end 
    
end



--[[
    函数名: writevala(filename,value)
    功能:向输入的文件中添加内容,内容附加在原文件内容之后
    参数:第一个文件名,第二个需要添加的内容
    返回值:无                         --]]
local function writevala(filename,value)--在指定文件中添加内容,函数名最后一位就是打开的模式
    local filehandle = io.open(filename,"a")--第一个参数是文件名,后一个是打开模式'r'读模式,'w'写模式,对数据进行覆盖,'a'附加模式,'b'加在模式后面表示以二进制形式打开
    if filehandle then
        filehandle:write(value)--写入要写入的内容
        filehandle:close()
    else
        print("文件不存在或文件输入格式不正确") --打开失败  
    end
end



--[[
    函数名:writevalw(filename,value)
    功能:向输入文件中添加内容,新添加的内容会覆盖掉原文件中的内容
    参数:同上
    返回值:无                 --]]
local function writevalw(filename,value)--在指定文件中添加内容
    local filehandle = io.open(filename,"w")--第一个参数是文件名,后一个是打开模式'r'读模式,'w'写模式,对数据进行覆盖,'a'附加模式,'b'加在模式后面表示以二进制形式打开
    if filehandle then
        filehandle:write(value)--写入要写入的内容
        filehandle:close()
    else
        print("文件不存在或文件输入格式不正确") --打开失败  
    end
end


--[[函数名:deletefile(filename)
    功能:删除指定文件中的所有内容
    参数:文件名
    返回值:无             --]]
local function deletefile(filename)--删除指定文件夹中的所有内容
    local filehandle = io.open(filename,"w")
    if filehandle then
        filehandle:write()--写入空的内容
        print("删除成功")
        filehandle:close()
    else
        print("文件不存在或文件输入格式不正确") --打开失败  
    end
end

--打印文件系统的剩余空间
print("get_fs_free_size: "..rtos.get_fs_free_size().." Bytes")
--成功创建一个目录(目录已存在,也返回true表示创建成功)
if rtos.make_dir(USER_DIR_PATH) then
    readfile(USER_DIR_PATH.."/3.txt")

    writevalw(USER_DIR_PATH.."/3.txt","great")

    readfile(USER_DIR_PATH.."/3.txt")
    writevala(USER_DIR_PATH.."/3.txt","great")
    readfile(USER_DIR_PATH.."/3.txt")

    deletefile(USER_DIR_PATH.."/3.txt")
    readfile(USER_DIR_PATH.."/3.txt")
end

2、通过trace看读写结果

image

可以看到执行顺序为:创建文件->向文件写内容->向文件追加内容->删除文件

相关文章

  • Luat实例教程:系统文件读写

    本教程目的:开发者可以将数据保存在系统里,即使断电数据也不会丢失。 Lua文件读写的API使用方法查阅Lua io...

  • Luat实例教程:adc

    本示例实现的功能是:读取adc值。 1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可以自己随...

  • Luat实例教程:gpio

    本示例实现的功能是:IO输入输出以及串口中断回调函数的使用 1.在编辑工具建立一个test.lua的文件(不一定叫...

  • Luat实例教程:json

    本示例实现的功能是:json编解码测试demo项目 1.在编辑工具建立一个test.lua的文件(不一定叫这个名字...

  • Python 学习笔记6 2018-04-13

    文件操作: 1,文件的读写操作 2,文件的各种系统操作 3,存储对象 1,文件的读写操作 读写数据: ...

  • day9作业2_登录注册(学生系统修改中)

    登录注册 文件读写: 学生系统

  • Python 学习笔记9 - IO编程

    文件读写 读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对...

  • Luat实例教程:连接aliyun

    本示例实现的功能是:MQTT_TCP连接阿里云物联网后台的demo项目(华东2节点) 注意:在demo中,aliy...

  • Luat实例教程:sms短信

    本示例实现的功能是:短信发送以及读取demo !!!attention 1.在编辑工具建立一个test.lua的文...

  • Luat实例教程:pwm功能

    本示例实现的功能是:pwm功能demo项目 1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可...

网友评论

    本文标题:Luat实例教程:系统文件读写

    本文链接:https://www.haomeiwen.com/subject/bstxcftx.html