Написал как пока умею, файлы все компонуются в 1 без проблем и по очереди. Выходной файл соответствует всем условиям, что тут еще можно сделать то???
package com.javarush.task.task18.task1825;
import java.io.*;
/*
Собираем файл
*/
public class Solution {
public static void main(String[] args) throws Exception {
Part[] kuski=new Part[1000]; //отсортированный массив частей
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
String put="C:\\Users\\Вечность\\Desktop\\Новая папка\\"; //папка для чтения файлов и записи
String s;
String vihod=null;
while (true){
s=reader.readLine();
if(s.equals("end"))
break;
vihod=s.split(".part")[0]; //создание имени выходного файла
kuski[Integer.parseInt(s.split("part")[1])]=new Part(put+s); //добавление части в массив с индексом(имя части)
}
File file1 = new File(put,vihod);//создание выходного файла
file1.createNewFile();
FileOutputStream write=new FileOutputStream(put+vihod); //создание потока для записи
for(int i=0;i<kuski.length;i++){ //каждый кусок начиная с 0 читается в буфер, записывает в выходной файл,закрывает поток чтения
if(kuski[i]==null)
continue;
FileInputStream read=new FileInputStream(kuski[i].getName());
byte[] mas=new byte[read.available()];
read.read(mas);
write.write(mas);
read.close();
}
write.close();
reader.close();
}
public static class Part{
String name;
Part(String name){
this.name=name;
}
public String getName() {
return name;
}
}
}