【需求】最近正在研发一款应用,属于车载定位系统的应用,运行在安卓终端设备上,安卓版本低了点,为2.3.4。
每当运行此应用,就会生成一个形如Log2016-05-20.txt 这样的文本文件,用来保存设备运行的状态信息。
关于日志有两种管理方法,一种是按日期定时删除日志。服务器通过UDP下达命令可以设置日志保留的时长,比如服务器向安卓终端设置保存日志时长为7天。而设备已连续运行了8天,自然就生成过8个这样的文本文件,但保留时长设为7天之后,就要删除7天之前的日志,即这里指的就是最早的那篇了,大家都能明白吧。
另一种管理方法为按日志保存的容量删除日志。比如当前日志有3份,分别为:Log2016-05-11.txt (日期最早,大小为5M), Log2016-05-12.txt (日期第二早,大小为6M), Log2016-0513.txt(最近日期,大小为2M) ,服务器设置日志容量大小为10MB,则每当应用初始化时,检查此文件夹下的这三个日志,前两个日志的和为:5+6=11 已经大于10M,则不计算后面的日志大小,就立即删除前两个日志,第三个日志得以保留。 如果日志大小分别为:5 ,6 , 12 ,9 。则按照需求,先删除5+6,再删除12,最后检查9<10. 最后一个得以保留。
所以,此需求就是这么变态。
于是在网上找了不少的方法与代码。自己也考虑了很多,结合网上的代码与自己的改写,有以下部分代码得以实现此功能(指的是第二种:按日志容量删除日志)
然后直接贴代码:
Tes.j