Помогите найти ошибку
package com.javarush.task.task18.task1808;
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) throws Exception{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] filenames = new String[3];
for (int i =0; i<3; i++){
filenames[i]=reader.readLine();
}
reader.close();
FileInputStream w = new FileInputStream(filenames[0]);
FileOutputStream e = new FileOutputStream(filenames[1]);
FileOutputStream r = new FileOutputStream(filenames[2]);
List<FileOutputStream> list = new ArrayList<>();
list.add(e);
list.add(r);
int d = w.available();
if (d%2==0){
byte[] k = new byte[d/2];
for(int i =0; i<2; i++){
while(w.available()>0){
FileOutputStream m = list.get(i);
w.read(k);
m.write(k);
}
}
} else if (d%2!=0){
List<byte[]> f = new ArrayList<>();
byte[] o = new byte[d/2+1];
byte[] p = new byte[d];
f.add(o);
f.add(p);
for (int i = 0; i<2; i++){
while(w.available()>0) {
FileOutputStream m = list.get(i);
byte[] l = f.get(i);
w.read(l);
m.write(l);
}
}
}
w.close();
e.close();
r.close();
}
}