Could some one explain Collections.enumeration
public static void main(String[] args) throws IOException {
String resultFile = args[0];
List<String> zipFiles = new ArrayList<>();
for (int i = 1; i < args.length; i++) {
String FilePath = args[i];
zipFiles.add(FilePath);
}
Collections.sort(zipFiles);
// put all inputstream into list
List<FileInputStream> list = new ArrayList<>();
for (String s : zipFiles)
list.add(new FileInputStream(s));
//read each inputstream using zipinputstream read and write using fileoutputstream
OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(resultFile));
ZipInputStream zipInputStream = new ZipInputStream(new SequenceInputStream(Collections.enumeration(list)));
for (ZipEntry entry = null; (entry = zipInputStream.getNextEntry()) != null; ) {
byte[] buffer = new byte[1024];
for (int readBytes = -1; (readBytes = zipInputStream.read(buffer, 0, buffer.length)) > -1; ) {
outputStream.write(buffer, 0, readBytes);
}
}
zipInputStream.close();
outputStream.close();
}