Добрый день! Не проходит валидатор (чтение в буфер, не все данные пишутся, поток не закрыт), хотя если работать непосредственно с фаилами то проблем нет. Да и закрыл по идее все
package com.javarush.task.task18.task1825;
/*
Собираем файл
*/
import java.io.*;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Set;
public class Solution {
public static void main(String[] args) throws IOException {
HashMap<Integer,String> partsFile = new HashMap<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader rf;
String s;
StringBuilder sum;
String out = "";
int lastpoint;
FileReader is;
String[] buffer;
int number,c;
s = reader.readLine();
lastpoint = s.lastIndexOf('.');
String[] parts;
out = s.substring(0,lastpoint);
FileWriter fw = new FileWriter(out,true);
BufferedWriter bw = new BufferedWriter(fw);
while (!s.equals("exit")){
parts = s.split(".part");
is = new FileReader(s);
rf = new BufferedReader(is);
sum = new StringBuilder();
while ((c = rf.read()) != -1)
sum.append((char) c);
//вытаскиваем номер части фаила (последний номер после part)
number = Integer.parseInt(parts[(parts.length)-1]);
//в один map добавляем номер этой части с его буфером, в другой номер части и размер буфера
partsFile.put(number, sum.toString());
s = reader.readLine();
rf.close();
is.close();
}
reader.close();
//вытаскиваем в список, конвертируем в массив и сортируем
Set<Integer> keyArray = partsFile.keySet();
Integer[] keys;
keys = keyArray.toArray(new Integer[0]);
Arrays.sort(keys);
//сопоставляем отсортированному списку значения из MAP
for (Integer key : keys) {
bw.write(partsFile.get(key));
}
bw.close();
fw.close();
}
}