Pobierz plik przez HTTP o nieznanej długości z Javą

Chcę pobrać zapytanie HTTP za pomocą java, ale pobierany plik ma nieokreśloną długość.

Myślałem, że to będzie dość standardowe, więc szukałem i znalazłem fragment kodu:http://snipplr.com/view/33805/

Ale ma problem ze zmienną contentLength. Ponieważ długość jest nieznana, otrzymuję -1 z powrotem. To powoduje błąd. Kiedy pomijam całe sprawdzenie dotyczące contentLength, oznacza to, że zawsze muszę użyć maksymalnego bufora.

Ale problem polega na tym, że plik nie jest jeszcze gotowy. Tak więc kolor jest tylko częściowo wypełniony, a części pliku zostają utracone.

Jeśli spróbujesz pobrać link, taki jakhttp://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 przy użyciu tego fragmentu zauważysz błąd, a gdy zawsze pobierzesz maksymalny bufor, aby pominąć błąd, otrzymasz uszkodzony plik XML.

Czy jest jakiś sposób, aby pobrać tylko gotową część pliku? Chciałbym, żeby to mogło pobrać duże pliki (do kilku GB).

questionAnswers(1)

yourAnswerToTheQuestion