AFAIK. Предполагается, что вы завершили передачу файла, вызвав completePendingCommand () и проверив, что передача действительно прошла успешно. то есть вам нужно добавить вызов функции ниже fos.clos ().
fos.close();
client.completePendingCommand()
Вы также можете учесть это, в соответствии с API для FTPClient.retrieveFileStream (), метод возвращает ноль, когда он не может открыть соединение для передачи данных, и в этом случае вы должны проверить код ответа (например, getReplyCode (), getReplyString () , getReplyStrings ()), чтобы увидеть, почему это не удалось.