" Se voglio inserire uno sleep per il codice che contiene la chiamata di download come faccio?
Vorrei inserirlo poichè lo scanner non trova il file che intanto si sta scaricando."


effetivamente ha ragione simo hai bisogno di un tempo che di certo non convine stimare.
Io ti consiglio di crearti un semaforo per accesso in mutua esclusione sulla risorsa "file" con i metodi wait e notify non dovresti impiegarci molto.
il tuo problema assomiglia a quello classico del produttore e del consumatore:
lo scanner è il consumatore il quale non può leggere prima che non sisa stato depositato un messaggio nel buffer cioè il file sia pronto.

Il threead che effettua il download invece è il produttore il cui vincolo nella teoria è non produrre fintatno che il buffer è pieno, non so se nel tuo caso hai questo vincolo
Ciao