Java根据指定大小进行多文件压缩

有这么个场景,一个文件夹内有几千个xls文件,现在要求把这些文件压缩,压缩成多个ZIP包,每一个zip包的大小是比如5MB或者10MB,那么就以10MB为例,这个该怎么实现?

提供思路:
1、java 读取文件夹里面文件列表 其中包含文件size
2、循环遍历文件列表 根据设定的大小进行分组,每一个分组都是一个压缩包
3、最后根据分组的文件列表进行循环压缩即可
具体代码就不写了

img


压缩工具用的Bandizip

给你个思路:首先,几个xls文件不可能压缩后刚好是10M。所以你看下10M的压缩包对应的源文件大小是多少兆,然后压缩时,循环遍历几个文件的原始大小并求和,超过10M时则不允许压缩,然后将最后一个文件去掉再进行比对,超过继续去掉最后一个文件,然后进行比对,不超过就进行压缩。