一个简单的功能实现起来又臭又长。。。。大伙来帮我看看哈
資深大佬 : phpIsNumberOne 6
用一个数组记录文件写入情况(是一小段一小段写入的,而且是无序的);输入的参数是一次写入开始的位置和结束的位置,比如数组0 8 46 55 则表示 0-8 和 46-55 的位置写入了数据,9-45 还没有写入数据。
-
连续的应该合并
又在 9-15 写入了数据,数组变为
0 15 46 55 -
覆盖的应该合并
又在 13-19 写入了数据,数组变为 0 19 46 55
- 不连续的应该增加
又在 21-25 写入了数据,数组变为0 19 21 25 46 55
- 跨段的应该合并
又在 20-28 写入了数据,数组变为0 28 46 55
这个想法应该很好理解,当一个文件写入完成后,数组应该只有两个值0 fileSize。
我实现是进行分类讨论,估计还有个别情况没有考虑到,写得又长又臭。。。。
Golang 写的: demo
大佬有話說 (4)