Добрый день, коллеги. Помогите пожалуйста разобраться. Валидатор не пропускает и говорит, что поток записи не закрыт, по всем остальным пунктам тоже мимо, кроме первого. Голова уже не варит, не понимаю в чём проблема. Код отрабатывает как надо, файл создаётся, все данные в файл записываются.
Здесь наоборот, поток закрывается ниже. Почему-то код именно так сюда встал и не правится.
inputStream.close();
}
}
// inputStream.close();package com.javarush.task.task18.task1825;
/*
Собираем файл
*/
import java.io.*;
import java.util.ArrayList;
import java.util.List;
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));
// BufferedInputStream inputStream = null;
BufferedOutputStream outputStream;
PrintStream filePrintStream;
List<String> listArr = new ArrayList<>();
Set<Integer> arrSet = new TreeSet<>();
String text;
while (!(text = reader.readLine()).equals("end")) listArr.add(text);
// while (!(text = reader.readLine()).equals("end")) arrSet.add(Integer.parseInt(text.substring(text.indexOf(".part") + 5)));
reader.close();
String[] s = listArr.get(0).split(".part", 2);
filePrintStream = new PrintStream(new File(s[0]));
for (String textList : listArr) {
arrSet.add(Integer.parseInt(textList.substring(listArr.get(0).indexOf(".part") + 5)));
}
outputStream = new BufferedOutputStream(new FileOutputStream(s[0]));
for (Integer number_text : arrSet) {
BufferedInputStream inputStream = null;
for (String address : listArr) {
if (address.contains(number_text.toString())) {
inputStream = new BufferedInputStream(new FileInputStream(address));
byte[] data = new byte[inputStream.available()];
outputStream.write(data, 0, inputStream.read(data));
inputStream.close();
}
}
// inputStream.close();
}
filePrintStream.close();
outputStream.close();
}
}