/FilePacker

Java文件打包程序

Primary LanguageJava

FilePacker

Java文件打包程序

现在想象一个场景,你要将文件夹上传到网盘备份。 但是,假如现在有个大文件几G,可能上传到99%网络断了,重来(下载也是)。还有一种情况,可能某个文件夹下有大量的小文件(几十万的量级) ,可能上传的过程中,网络都跑不满,全部卡在cpu解析和读取上了。

所以现在需要把文件大小居中,弄成适当的大小(比如10MB一个文件),现在的任务就是将一个文件夹下的文件打包成10MB的文件块。

  • 问题一:

比如有如下文件的大小: 3个12M,10个127k,100个7k的文件

预期分配结果是什么?是最优的吗?

思路和需要用到的知识

  1. 遍历文件夹信息,就是获取每个文件的大小,路径什么的
  2. 编写算法,输入所有文件的信息,进行打包算法,
  • 问题二:

输出是怎么样的?

  1. 拿上一步的输出,执行打包作业
  • 问题三: 重点

找个大一点的文件夹,观察执行中cpu,磁盘的调度和使用情况,性能最优了吗?

体会什么是阻塞。