Thanks in advance
package com.codegym.task.task18.task1825;
import java.io.*;
import java.util.*;
/*
Building a file
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
TreeMap<Integer, String> fileList = new TreeMap<>();
while (true) {
String fileName = reader.readLine();
StringBuffer filePart = new StringBuffer();
if (fileName.equals("end")) break;
for (int i = 0; i < fileName.length(); i++) {
if (Character.isDigit(fileName.charAt(i))) {
filePart.append(fileName.charAt(i));
}
}
fileList.put(Integer.parseInt(String.valueOf(filePart)), fileName);
}
reader.close();
String[] splittedFile = fileList.firstEntry().getValue().split("\\.");
File newFile = new File(splittedFile[0] + "." + splittedFile[1]);
if (!newFile.exists()) {newFile.createNewFile();}
for (String string : fileList.values()) {
FileInputStream inputStream = new FileInputStream(newFile);
FileInputStream partInputStream = new FileInputStream(string);
byte[] newFileBuffer = new byte[inputStream.available()];
byte[] partBuffer = new byte[partInputStream.available()];
inputStream.read(newFileBuffer);
partInputStream.read(partBuffer);
inputStream.close();
partInputStream.close();
FileOutputStream fileOutputStream = new FileOutputStream(newFile);
FileOutputStream appender = new FileOutputStream(newFile, true);
fileOutputStream.write(newFileBuffer);
appender.write(partBuffer);
fileOutputStream.close();
appender.close();
}
}
}