?????
package com.javarush.task.task18.task1825;
import java.io.*;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
TreeMap<Integer, byte[]> files = new TreeMap<>();
String absolutepath = null;
while(true) {
String filename = reader.readLine();
if (filename.equals("end")) break;
FileInputStream inputStream = new FileInputStream(filename);
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
/*char[] cache = filename.toCharArray(); // блок кода для извлечения номера файла
StringBuffer number = new StringBuffer("");
for (int i = filename.length()-1; i > -1 ; i--) {
if (cache[i] == '.') {
for (int j = i-1; j > -1; j--) {
if (cache[j] != 't') number.append(cache[j]);
else break;
}
break;
}
}
number.reverse();
*/
String [] s = filename.split(".part");
StringBuffer number = new StringBuffer("");
number.append(s[1].substring(0, s[1].length() - 4).trim());
absolutepath = s[0];
byte[] buffer = new byte[inputStream.available()];
bufferedInputStream.read(buffer);
inputStream.close();
bufferedInputStream.close();
files.put(Integer.parseInt(number.toString()),buffer);
}
reader.close();
/*
String path = file1.getParent();
String filenamepart = file1.getAbsolutePath();
char[] cache = filenamepart.toCharArray(); //блок кода для извлечения имени без суффикса
StringBuffer filename = new StringBuffer("");
int count = 0;
for (int i = filenamepart.length()-1; i > -1 ; i--) {
if (cache[i] == '.' && count == 1) {
for (int j = i-1; j > -1; j--) {
if (cache[j] != '\\') filename.append(cache[j]);
else break;
}
break;
} else if (cache[i] == '.') count++;
}
filename.reverse();
*/
StringBuilder sb = new StringBuilder();
sb.append(absolutepath);
sb.append(".txt");
FileOutputStream outputStream = new FileOutputStream(sb.toString(),true);
for (Map.Entry<Integer,byte[]> pair: files.entrySet()) {
outputStream.write(pair.getValue());
}
outputStream.close();
}
}