ho provato così:
codice:
try {
            BufferedInputStream bis = new BufferedInputStream((new URL(url).openStream()));
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(localPath), buffSize);
            byte[] data = new byte[buffSize];
            int count;
            while ((count = bis.read(data, 0, buffSize)) != -1) {
                bos.write(data, 0, count);
            }
            bis.close();
            bos.flush();
            bos.close();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
dove
url è la rappresentazione String dell'indirizzo (ho fatto le prove con http, vedo che tu usi ftp - proverò quanto prima)

buffSize è la dimensione del buffer di lettura (4096 nel mio caso)
localPath il percorso in locale dove salvo il file scaricato.

Nessun problema riscontrato.