С таким интересом писал код, задача даже не компилируется, что не нравится валидатору?
package com.javarush.task.task18.task1825;
import java.io.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
/*
Собираем файл
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String fileName = " ";
TreeMap<Integer, String> fileNames = new TreeMap<>();
while (br.ready()) {
fileName = br.readLine();
//читаем название файла, если не end, то разбиваем его на подстроки, где N (из условия задачи), будет
//ключом, а значением будет название файла
while (!fileName.equals("end")) {
String part = "part";
int pos = fileName.indexOf(part);
String after = fileName.substring(pos + part.length());
StringBuilder number = new StringBuilder();
for (char c : after.toCharArray()) {
if (Character.isDigit(c)) {
number.append(c);
} else {
break;
}
}
int num = Integer.parseInt(String.valueOf(number));
fileNames.put(num, fileName);
}
}
br.close();
//ищем папку, в которой находятся файлы и создаем файл без суффикса
String currentDir = System.getProperty("user.dir");
int ind = fileName.lastIndexOf(".part");
String finalFileName = fileName.substring(0, ind);
File finalFile = new File(currentDir, finalFileName);
//записываем поочередно все байты из файлов в конечный файл (файлы отсортированы по ключам, взятым из N)
for (Map.Entry<Integer, String> entry : fileNames.entrySet()) {
FileInputStream fis = new FileInputStream(entry.getValue());
FileOutputStream fos = new FileOutputStream(finalFile);
fos.write(fis.readAllBytes());
}
}
}