Запускаю у себя, отрабатывает на ура, всё читает, файл создаёт в папке, пишет в него всё что нужно. Но Валидатор как всегда не преклонен.
Местами возможно я ересь написал, но не знаю как по другому, если честно.
package com.javarush.task.task18.task1825;
import java.io.*;
import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
/*
Собираем файл
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> files = new ArrayList<>();
while (true) { // Считываем всё в ArrayList
String file = reader.readLine();
if (file.equals("end")) break;
files.add(file);
}
File file = new File(files.get(0));
String path = file.getParent(); // Получаем папку где лежат все Файлы
String resultFileName = files.get(0); // Получаем название итогового файлы
int count = 0;
char[] symbols = resultFileName.toCharArray();
for (int i = files.get(0).length()-1; i > 0 ; i--) {
count++;
if (symbols[i] == '.') break;
}
resultFileName = resultFileName.substring(0, resultFileName.length()-count);
File fileResult = new File(path, resultFileName);// Создаём итоговый файл и открываем поток
BufferedWriter writer = new BufferedWriter(new FileWriter(fileResult));
for (int i = 1; i <= files.size(); i++) { // Пишем в итоговый файл по порядку
for (String x : files) {
if (x.contains(".part" + i)) {
BufferedReader readerTwo = new BufferedReader(new FileReader(x));
FileInputStream fileSize = new FileInputStream(x);
char[] bytes = new char[fileSize.available()];
System.out.printf("Write from part#%s.", "" + i);
System.out.println();
readerTwo.read(bytes);
writer.write(bytes);
writer.flush();
readerTwo.close();
}
}
}
reader.close();
writer.close();
}
}