Все функции счета и записи выполнены. Потоки закрыты . Код конечно местами не красивый , но все работает
package com.javarush.task.task18.task1825;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
/*
Собираем файл
*/
public class Solution {
//E:\\1.part1.txt
public static void main(String[] args) throws Exception{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<Integer> integers = new ArrayList<>();
ArrayList<String> file = new ArrayList<>();
String text = "";
while (text.equals("end")==false){
text = reader.readLine();
file.add(text);
String[] subStr;
String delimeter = "\\.";
subStr = text.split(delimeter);
for (int i = 0; i < subStr.length ; i++) {
if(subStr[i].contains("part")){
integers.add(Integer.valueOf(subStr[i].substring(4)));
}
}
}
ArrayList<Integer> copy = new ArrayList<>(integers);
Collections.sort(copy);
ArrayList<String> fileout = new ArrayList<>();
for (int i = 0; i < copy.size(); i++) {
for (int j = 0; j < integers.size(); j++) {
if(copy.get(i) == integers.get(j)){
fileout.add(file.get(j));
}
}
}
InputStream fileinput = null;
byte [] buffer;
FileOutputStream fileOutputStream = new FileOutputStream("E:\\3.partN.txt");
for (int i = 0; i < fileout.size(); i++) {
fileinput = new FileInputStream(fileout.get(i));
buffer = new byte[fileinput.available()];
while (fileinput.available() >0){
int data = fileinput.read(buffer);
fileOutputStream.write(buffer,0,data);
}
}
fileinput.close();
fileOutputStream.close();
reader.close();
}
}