我只能在代码中发现2个潜在错误:
int fileSize = (int) ifile.length();
当文件超过2GB时,以上操作将失败,因为
int不能容纳更多文件。
newName = fname + ".part" + Integer.toString(nChunks - 1);
像这样构造的文件名应该以非常特定的方式进行排序。使用默认字符串排序时,
name.part10将位于之前
name.part2。您想提供一个习惯
Comparator,该习惯将零件号提取并解析为一个int,然后以此进行比较。



