что происходит на каждой итерации цикла? происходит чтение в массив и запись в файл из массива за один проход, а на втором условие становится false? или же происходит запись и чтение по 1 байту?
FileInputStream inputStream = new FileInputStream("c:/data.txt");
        // Создаем поток-записи-байт-в-файл
        FileOutputStream outputStream = new FileOutputStream("c:/result.txt");
        byte[] buffer = new byte[inputStream.available()];
        while (inputStream.available() > 0) {
            int count = inputStream.read(buffer);
            outputStream.write(buffer, 0, count);
        }