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

一、文件读存:


-- 似乎不支持大文件(不能超过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();