Не проходит по 2, 3, 4, 5 пунктам
package com.javarush.task.task18.task1825;
import java.io.*;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
import java.util.List;
import java.util.ArrayList;
/*
Собираем файл
*/
public class Solution {
public static void main(String[] args) throws IOException {
// считать с консоли имена файлов в ArrayList
BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in));
List<String> fileNames = new ArrayList<>();
while (true)
{
String fileName = consoleReader.readLine();
if (fileName.equals("end")) break;
fileNames.add(fileName);
}
consoleReader.close();
// отсортировать список с именами файлов используя fileNameComparator
FileNameComparator fileNameComparator = new FileNameComparator();
fileNames.sort(fileNameComparator);
// вычислить название файла для записи
String[] fileParts = fileNames.get(0).split(".");
String destFileName = fileParts[0] + "." + fileParts[1];
// записать в файл для записи данные из файлов из отсортированого списка (по порядку)
BufferedOutputStream destFile = new BufferedOutputStream(new FileOutputStream(destFileName));
for (int i = 0; i < fileNames.size(); i++)
{
BufferedInputStream currentFile = new BufferedInputStream(new FileInputStream(fileNames.get(i)));
while (currentFile.available() > 0)
{
destFile.write(currentFile.read());
}
currentFile.close();
}
destFile.close();
}
// создать класс компаратор для сравнения имён файлов (String)
public static class FileNameComparator implements Comparator<String>
{
@Override
public int compare(String file1Name, String file2Name)
{
String[] file1Parts = file1Name.split(".");
String file1Part3 = file1Parts[2];
int file1Number = Integer.parseInt(file1Part3.substring(4));
String[] file2Parts = file2Name.split(".");
String file2Part3 = file2Parts[2];
int file2Number = Integer.parseInt(file2Part3.substring(4));
return Integer.compare(file1Number, file2Number);
}
}
}