Looks like FileInputStream doesn't read and / or FileOutputStreams don't write. But why? When I do it on my PC, both outputs look right.
PS: Maybe the way I divide the bytes is not correct or could be better, but at this point my priority is to find out why the 2-nd condition is not met.
package pl.codegym.task.task18.task1808;
/*
Dzielenie pliku
*/
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String file1 = reader.readLine();
String file2 = reader.readLine();
String file3 = reader.readLine();
FileInputStream inputStream = new FileInputStream(file1);
FileOutputStream outputStream = new FileOutputStream(file2);
FileOutputStream outputStream1 = new FileOutputStream(file3);
List<Integer> buffer = new ArrayList<>();
List<Integer> list = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
while (inputStream.available() > 0) {
int temp = inputStream.read();
buffer.add(temp);
}
int midway;
if (buffer.size() % 2 == 0) midway = buffer.size() / 2;
else midway = (buffer.size() / 2) + 1;
for (int i = 0; i <= midway; i++) {
list.add(buffer.get(i));
}
for (int i = midway + 1; i < buffer.size(); i++) {
list2.add(buffer.get(i));
}
for (Integer l : list) { outputStream.write(l); }
for (Integer m : list2) { outputStream1.write(m); }
inputStream.close();
outputStream.close();
outputStream1.close();
}
}