Попробовал уже кучу вариантов, и через TreeSet, и через ArrayList, но, видимо, не в этом проблема, что то упускаю.
package com.javarush.task.task18.task1825;
import java.io.*;
import java.util.*;
import java.nio.file.*;
/*
Собираем файл
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String finallyFile = null;
TreeMap<Integer, String> mapName = new TreeMap<>();
while (reader.ready()) {
String name = reader.readLine();
if (name.equals("end")) {
reader.close();
return;
}
int part = Integer.parseInt(name.substring(name.lastIndexOf("t") + 1));
mapName.put(part, name);
if (finallyFile == null) {
finallyFile = name.substring(0, name.lastIndexOf("."));
}
}
reader.close();
FileOutputStream outputStream = new FileOutputStream(finallyFile, true);
for (Map.Entry<Integer, String> pair : mapName.entrySet()) {
BufferedInputStream inputReader = new BufferedInputStream(new FileInputStream(pair.getValue()));
if (inputReader.available() > 0) {
byte[] buffer = new byte[inputReader.available()];
int count = inputReader.read(buffer);
outputStream.write(buffer, 0, count);
}
inputReader.close();
}
outputStream.close();
}
}