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();