Java文件打包程序
现在想象一个场景,你要将文件夹上传到网盘备份。 但是,假如现在有个大文件几G,可能上传到99%网络断了,重来(下载也是)。还有一种情况,可能某个文件夹下有大量的小文件(几十万的量级) ,可能上传的过程中,网络都跑不满,全部卡在cpu解析和读取上了。
所以现在需要把文件大小居中,弄成适当的大小(比如10MB一个文件),现在的任务就是将一个文件夹下的文件打包成10MB的文件块。
- 问题一:
比如有如下文件的大小: 3个12M,10个127k,100个7k的文件
预期分配结果是什么?是最优的吗?
思路和需要用到的知识
- 遍历文件夹信息,就是获取每个文件的大小,路径什么的
- 编写算法,输入所有文件的信息,进行打包算法,
- 问题二:
输出是怎么样的?
- 拿上一步的输出,执行打包作业
- 问题三: 重点
找个大一点的文件夹,观察执行中cpu,磁盘的调度和使用情况,性能最优了吗?
体会什么是阻塞。