решение не подходит по условию , что все байты из файлов-частей записаны. может ли это быть что между 1 и 30 частью файла есть пробелы?
package com.javarush.task.task18.task1825;
import java.io.*;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
import java.util.HashMap;
/*
Собираем файл
*/
public class Solution {
public static void main(String[] args) throws IOException{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
HashMap<String, Integer> map = new HashMap< >();
String line;
String filename;
int part = 0;
while (!(line = reader.readLine()).equals("end")){
filename = line.substring(0, line.lastIndexOf("."));
part = Integer.parseInt(line.substring(line.lastIndexOf(".part") + 5));
map.put(filename, part);
}
for (String name: map.keySet()){
try (FileOutputStream fo = new FileOutputStream(name)){
int value = map.get(name);
byte[] buffer = new byte[1024]; // Буфер для чтения
for (int i = 1; i <= value; i++){
try (FileInputStream fs = new FileInputStream(name + ".part" + i)) {
int bytesRead;
while ((bytesRead = fs.read(buffer)) != -1){
fo.write(buffer, 0, bytesRead);
}
}
}
}
}
}
}