我想用Java下载一个HTTP查询,但是当下载时我下载的文件大小不确定。
我认为这应该是很标准的,所以我搜索并找到了一个相应的代码片段:http://snipplr.com/view/33805/
但是它有一个关于contentLength变量的问题。因为长度未知,所以我得到-1。这会导致一个错误。当我省略关于contentLength的整个检查时,那就意味着我总是要使用最大的缓冲区。
但问题在于文件还没有准备好。所以刷新只被部分填充,文件的某些部分丢失了。
如果您尝试下载像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那样的链接,您会注意到错误,并且当您始终下载最大缓冲区以省略错误时,即使您下载的是几个GB的大文件,也会得到一个损坏的XML文件。
有没有办法只下载文件的准备好的部分?我希望它能够下载大文件(最多几GB)。