Все соединяет, как надо, а валидатор не пропускает.
package com.javarush.task.task18.task1825;
/*
Собираем файл
*/
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) throws IOException, FileNotFoundException{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName;
FileInputStream inputStream = null;
FileOutputStream outputStream = new FileOutputStream("File", true);
TreeMap<Integer, String> namesOfFiles = new TreeMap<>();
while (!(fileName = reader.readLine()).equals("end")) {
String part = fileName.substring(fileName.lastIndexOf(".part")+5);
namesOfFiles.put(Integer.parseInt(part), fileName);
}
reader.close();
for (Map.Entry<Integer, String> pair: namesOfFiles.entrySet()) {
inputStream = new FileInputStream(pair.getValue());
byte[] buffer = new byte[inputStream.available()];
while (inputStream.available() > 0){
inputStream.read(buffer);
outputStream.write(buffer);
}
inputStream.close();
}
outputStream.close();
}
}