Я понимаю проблема в строчка 25-32. При записи первого файла все нормально , но с последующими возникает проблема потому что in.available() = 0. Объясните почему так и как этого можно исправить. (У меня была мысль что если я закрою поток то при новой итерации цикла создастся новый поток и in.available() не будет = 0)
package com.javarush.task.task18.task1825;
import java.io.*;
import java.util.*;
/*
Собираем файл
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String file;
// String name = "D:/data/";
List<String> list = new ArrayList<>();
Collections.sort(list);
while (!(file=reader.readLine()).equals("end")){
list.add(file);
}
String mainChapterNumber = list.get(0).split("\\.part", 2)[0];
PrintWriter writer = new PrintWriter(mainChapterNumber);
writer.close();
FileOutputStream out = new FileOutputStream( mainChapterNumber);
for (String s : list) {
FileInputStream in = new FileInputStream(s);
byte [] listByte;
listByte = new byte[in.available()];
int data = in.read(listByte);
out.write(listByte,0,data);
in.close();
}
out.close();
writer.close();
}
}