Не пойму что не так с моим кодом, украл из правильного решения часть с компоратором т.к. пока вообще не понял как его правильно писать, но в остальном код как я понимаю по логике схож с решением, в конце так же цикл в цикле, но у меня пишется что программа работала слишком долго. Подскажите что я глобально делаю не так?
package com.javarush.task.task18.task1825;
import java.io.*;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
/*
Собираем файл
*/
public class Solution {
public static void main(String[] args) throws IOException {
Set<String> set = new TreeSet<String>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String[] parts1 = o1.split(".part");
String[] parts2 = o2.split(".part");
int number1 = Integer.parseInt(parts1[parts1.length - 1]);
int number2 = Integer.parseInt(parts2[parts2.length - 1]);
return number1 - number2;
}
});
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String path = reader.readLine();
while (true) {
if (path.equals("exit")) {
break;
} else {
set.add(path);
}
}
reader.close();
String[] nameSplit = path.split(".part");
String nameFinalFile = nameSplit[0];
FileOutputStream fos = new FileOutputStream(nameFinalFile);
BufferedOutputStream bos = new BufferedOutputStream(fos);
for (String s : set) {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(s));
while (bis.available() > 0) {
int bytE = bis.read();
bos.write(bytE);
}
bis.close();
}
bos.close();
fos.close();
}
}