Java支持从Url下载数据,然后是Int.MAX_VALUE(Url.openConnection())

时间:2018-08-23 05:47:41

标签: java url download inputstream

当我要下载超过Int.MAX_VALUE个内容大小时,我感到很困惑。

UrlConnection.contentLength会返回Int,因此它会更大。它可能会返回-1

//i'm reading 1024 * 4 at a time
Long offset = 0 //download data
Long size = UrlConnection.contentLengthLong

并且如果我使用UrlConnection.contentLengthLong,则会出现问题,当我阅读UrlConnection.getInputStream.read(byte[] dest, Int offset, Int length)时,Long offset到达Int.MAX_VALUE时,我将无法转换{{1} }至Long offset。可能Int

那么从流中读取多于Int Overflow的替代方法是什么,因为Int.MAX_VALUE函数中不支持Long的值。

1 个答案:

答案 0 :(得分:1)

Java中数组的最大大小不能超过整数范围。要从流中读取更多数据,您必须一步一步地进行操作。这样做时,您将永远不必使用长参数作为偏移量或长度。