Можно ли начать обработку файла до его полной загрузки?
да
Каковы потенциальные проблемы с этим?
При достижении EOF - как определить, действительно ли это EOF или считыватель был просто быстрее, чем приемник, и ему следует просто подождать секунду, прежде чем повторить чтение?
Решения для этого будут:
использовать таймауты - если размер файла больше не меняется в течение пары минут, передача может считаться завершенной. Мне не нравится это решение, так как никто никогда не узнает, была ли передача завершена нормально или соединение потеряно.
попробуйте заранее определить размер файла - если вы используете ftp-сервер, обычно можно выполнить команду 'dir', чтобы получить размер файла перед загрузкой. Это значение может быть передано программе чтения
Создайте сценарий загрузки, чтобы создать файл «Передача завершена», который программа-читатель может проверить при обнаружении EOF.
Примечание: я не очень беспокоюсь о том, что программа доходит до конца файла до того, как она закончила загрузку - файл загружается быстрее, чем программа может обработать данные.
Вы должны - действительно! Что делать, если сетевое соединение медленнее обычного только из-за других передач? Было бы нормально потерять данные в этом случае?