当前位置 博文首页 > Lua读取和写入文件处理例子

    Lua读取和写入文件处理例子

    作者:admin 时间:2021-02-12 21:32

    一、文件读存:

    复制代码 代码如下:

    -- 似乎不支持大文件(不能超过9k?)
    function FileSaveLoad()
          local file = io.open("c:\\in.lua", "r");
          assert(file);
          local data = file:read("*a"); -- 读取所有内容
          file:close();
          file = io.open("c:\\out.lua", "w");
          assert(file);
          file:write(data);
          file:close();
    end
    FileSaveLoad();

    二、非循环表格处理:

    复制代码 代码如下:

    HERO = 1;
    MONSTER = 2;
    BUILDING = 3;
    SUMUNIT = 4;
    cha = {};
    cha[1] =
    {
          basic =
          {
          Name = "农民",    --NPC名字
          cha_type = HERO,  --NPC模型
          },
          combat =
          {
           acquire = 600.00,  --主动攻击范围
           basic_def = 10,   --基础防御
          },
    };

    function SaveTableContent(file, obj)
          local szType = type(obj);
          print(szType);
          if szType == "number" then
                file:write(obj);
          elseif szType == "string" then
                file:write(string.format("%q", obj));
          elseif szType == "table" then
                --把table的内容格式化写入文件
                file:write("{\n");
                for i, v in pairs(obj) do
                      file:write("[");
                      SaveTableContent(file, i);
                      file:write("]=\n");
                      SaveTableContent(file, v);
                      file:write(", \n");
                 end
                file:write("}\n");
          else
          error("can't serialize a "..szType);
          end
    end

    function SaveTable()
          local file = io.open("e:\\00_00_00_海外组_学习\\写入.txt", "w");
          assert(file);
          file:write("cha = {}\n");
          file:write("cha[1] = \n");
          SaveTableContent(file, cha[1]);
          file:write("}\n");
          file:close();
    end

    SaveTable();

    js