lua写入一个不确定是否存在文件的方法

本文介绍在Lua中如何优雅地处理不确定是否存在的文件,详细讲解了检查文件存在性及写入文件的步骤,适用于需要动态生成或更新文件的场景。
摘要由CSDN通过智能技术生成

-- file_path 格式:"./servers/login/a.lua"
-- mode 格式:w / a / 其他
-- data :需要保存的数据
-- check_file_path :是否格式检查
使用时,不确定servers文件夹是否存在,login文件夹是否存在,代码会判断路径是否存在,不存在就创建文件夹


--字符串分割函数
--传入字符串和分隔符,返回分割后的table
function split_str_other(str, delimiter)
	if str==nil or str=='' or delimiter==nil then
		return nil
	end
	local t = {}
	for match in (str..delimiter):gmatch("(.-)"..delimiter) do
		table.insert(t, match)
	end
	return t
end
function write_data(file_path,mode,data,check_file_path)
	--#TODO做写缓存
	-- 判断路径中文件夹是否存在,不存在就创建。耗时2ms,不建议大量使用,如果不需要检查,直接写入使用时间不超过1ms
	if check_file_path then
		local ts = string.reverse(file_path)
		local i = string.find(ts, "/")
		local m = string.len(ts) - i
		local file_catalog = string
Lua中,可以使用io库中的writefile函数将数据写入文件。根据引用\[1\]中的代码,可以自定义一个函数writeLog2File来实现将数据写入文件的功能。该函数接受一个参数msg,表示要写入文件的内容。在函数内部,使用io.writefile函数将msg追加写入到本地文件中。具体的代码如下: ```lua function writeLog2File(msg) local logFilePath = cc.FileUtils:getInstance():getWritablePath() .. "debug_log.txt" io.writefile(logFilePath, string.format("%s: %s\n", os.date(), msg), "a+") end ``` 在调用writeLog2File函数时,传入要写入文件的数据即可。例如,要将字符串"Hello, Lua!"写入文件,可以使用以下代码: ```lua writeLog2File("Hello, Lua!") ``` 这样,字符串"Hello, Lua!"就会被追加写入到debug_log.txt文件中。 #### 引用[.reference_title] - *1* [cocos2d-lua:将打印的Lua日志写入本地文件](https://blog.csdn.net/fightsyj/article/details/90273487)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Lua将Nginx请求数据写入Kafka——埋点日志解决方案](https://blog.csdn.net/u013014691/article/details/122735525)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值