Lua读取和写入文件处理例子
一、文件读存:
--似乎不支持大文件(不能超过9k?) functionFileSaveLoad() localfile=io.open("c:\\in.lua","r"); assert(file); localdata=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, --基础防御 }, };
functionSaveTableContent(file,obj) localszType=type(obj); print(szType); ifszType=="number"then file:write(obj); elseifszType=="string"then file:write(string.format("%q",obj)); elseifszType=="table"then --把table的内容格式化写入文件 file:write("{\n"); fori,vinpairs(obj)do file:write("["); SaveTableContent(file,i); file:write("]=\n"); SaveTableContent(file,v); file:write(",\n"); end file:write("}\n"); else error("can'tserializea"..szType); end end
functionSaveTable() localfile=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();