Мне кажется, что все решено нормально.
Но валидатор так не считает.
Правильное решение мной уже подсмотрено и мне оно понятно.
Не понятно, что не так с моим))
package com.javarush.task.task18.task1825;
import java.io.*;
import java.nio.file.Path;
import java.util.*;
/*
Собираем файл
*/
public class Solution {
public static void main(String[] args) throws IOException{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
List<String> list = new ArrayList<>();
String currentLine;
while (!(currentLine = reader.readLine()).equals("end")){
String[] temp = currentLine.split(".part"); // из строки создаем массив
int index = Integer.parseInt(temp[1]); // получаем номер части файла
list.add(index, currentLine); // добавляем в список сразу под нужным индексом, не придется потом сортировать
}
int indexDot = currentLine.lastIndexOf("."); // получаем индекс последней точки в строке
String resultName = currentLine.substring(0,indexDot); // получаем новое имя файла, обрезав старое
FileOutputStream output = new FileOutputStream(resultName);
for (String str : list) { //для каждой строки (имени файла) из списка поочередно:
FileInputStream input = new FileInputStream(str); //создаем поток чтения
byte[] buffer = new byte[input.available()]; //создаем буфер
while (input.available() > 0) { //записываем данные в буфер, из буфера в новый файл
int bytesRead = input.read(buffer);
output.write(buffer, 0, bytesRead);
}
input.close(); //закрываем поток чтения
}
reader.close();
output.close();
}
}