Desidero scaricare una query HTTP con java, ma il download del file scaricato ha una durata indeterminata.Download di file via HTTP con lunghezza sconosciuta con Java
ho pensato che questo sarebbe abbastanza standard, così ho cercato e trovato un frammento di codice per esso: http://snipplr.com/view/33805/
ma ha un problema con la variabile contentLength. Poiché la lunghezza è sconosciuta, ottengo -1 indietro. Questo crea un errore. Quando ometto l'intero controllo su contentLength, ciò significa che devo sempre utilizzare il buffer massimo.
Ma il problema è che il file non è ancora pronto. In questo modo il colore viene riempito solo parzialmente e le parti del file vengono perse.
Se si tenta di scaricare un collegamento come http://overpass-api.de/api/interpreter?data=area%5Bname%3D%22Hoogstade%22%5D%3B%0A%28%0A++node%28area%29%3B%0A++%3C%3B%0A%29+%3B%0Aout+meta+qt%3B con lo snippet, si noterà l'errore e, quando si scarica sempre il buffer massimo per omettere l'errore, si finisce con un file XML corrotto.
C'è un modo per scaricare solo la parte pronta del file? Mi piacerebbe se questo potesse scaricare grandi file (fino a pochi GB).
Grazie, questo funziona . – sanderd17
Ho notato che il vero problema è che il comando file.seek non funzionava correttamente in questo caso. Non ha trovato la fine del file e quindi ne stava sovrascrivendo una parte. Utilizzando un FileOutputStream risolto (dopo aver eliminato il codice di errore come avevo già fatto). – sanderd17