В правильном решении предлагается в 21 строчке использовать
outputStream.write(buffer, 0, read);
вместо моего
outputStream.write(buffer);
Хотя и с моим решением файлы прекрасно копируются. В чём разница?