Ребят, вот код, вроде все работает по условию, все сортируется и записывается в файл (тот что без суффикса партН).
Валидатор ясное дело, как и у многих в этом треде ничего не принимает, 4 из 6 пунктов проваливаются.
Если кто может подсказать что не так, буду очень рад знать, а то принципиально не хочется в тупую переписывать решение.
А то по мнению валидатора и потоки не закрыты, и байты не записаны...
Спасибо.
package com.javarush.task.task18.task1825;
import java.io.*;
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> fileNames = new ArrayList<>();
// FileWriter writer = new FileWriter("D:\\ProgramTests\\result.txt",true);
String fileName; // D:\ProgramTests\test.part1.txt
String dest = "D:\\ProgramTests\\test.txt";
while (true) {
if (!(fileName = reader.readLine()).equals("end")) {
fileNames.add(fileName);
} else break;
}
String[] sortedNames = sortedNames = new String[fileNames.size()]; //25-30 : sorting
for (int i = 0; i < fileNames.size(); i++) {
String[] parts = fileNames.get(i).split(".part");
int numOfPart = Integer.parseInt(parts[1].substring(0, 1));
sortedNames[numOfPart - 1] = fileNames.get(i);
}
if (dest != null) {
try (FileOutputStream os = new FileOutputStream(dest)) {
for (String s : sortedNames) {
try (FileInputStream is = new FileInputStream(s)) {
byte[] buffer = new byte[is.available()];
while (is.available() > 0) {
int bytesRead = is.read(buffer);
os.write(buffer, 0, bytesRead);
}
}
}
}
}
}
}