Прокомментируйте, пожалуйста, это решение. Решая эту задачу, я опирался на правильность выполнения. И у меня эта программа выполняет функции из задания, то есть ввожу три файла не по порядку
/home/.../001.txt.part1
/home/.../001.txt.part3
/home/.../001.txt.part2
end
/home/.../001.txt
Открываю последний файл и нахожу там по порядку вписанные данные.
package com.javarush.task.task18.task1825;
import java.io.*;
import java.util.*;
/*
Собираем файл
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
ByteArrayOutputStream byteArrayOutStream = new ByteArrayOutputStream();
SortedSet<String> filesSet = new TreeSet<>();
String lastWord = null;
while (true){
lastWord = br.readLine();
if(lastWord.equals("end")){break;}
filesSet.add(lastWord);
}
Iterator iter = filesSet.iterator();
while (iter.hasNext()){
FileInputStream fis = new FileInputStream(iter.next().toString());
while (fis.available() > 0){
byteArrayOutStream.write(fis.read());
}
}
FileOutputStream fileAll = new FileOutputStream(br.readLine());
byteArrayOutStream.writeTo(fileAll);
br.close();
byteArrayOutStream.close();
fileAll.close();
}
}