Вроде делает все что просили ан нет, нуждаюсь в помощи
package com.javarush.task.task18.task1825;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
/*
Собираем файл
*/
public class Solution {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String currentName = "", name = "";
TreeMap<Integer, String> tree = new TreeMap<>();
int numba = 0, index = 0;
while (true) {
currentName = reader.readLine();
if (currentName.equals("end")){
break;
}
char[] chars = currentName.toCharArray();
StringBuilder number = new StringBuilder();
for (int i = chars.length - 1; ; i--){
if (chars[i] == 't'){
break;
}
number.append(chars[i]);
}
for (int i = chars.length - 1; ; i--){
if (chars[i] == '.'){
break;
}
numba = i - 1;
}
if(index == 0) {
for (int i = 0; i != numba; i++) {
name = name + chars[i];
}
index++;
}
Integer num = Integer.parseInt(reverse(number.toString()));
tree.put(num, currentName);
}
FileOutputStream fos = new FileOutputStream(name + ".txt");
reader.close();
for(Map.Entry entry : tree.entrySet()){
FileInputStream fis = new FileInputStream(entry.getValue().toString() + ".txt");
byte[] buffer = new byte[1000];
while (fis.available() > 0){
int count = fis.read(buffer);
fos.write(buffer, 0, count);
}
fis.close();
}
fos.close();
} catch (IOException e){
System.out.println(e);
}
}
public static String reverse(String s){
String result;
StringBuilder currentString = new StringBuilder();
char[] chars = s.toCharArray();
for (int i = chars.length - 1; i >= 0; i--){
currentString.append(chars[i]);
}
result = currentString.toString();
return result;
}
}