InputStream的contentLength通过另一种方式获取到
时间: 2023-12-31 11:05:35 浏览: 78
如果你已经获取到了InputStream对象,并且需要获取该InputStream的contentLength,可以使用ByteArrayOutputStream来读取InputStream中的数据,然后通过ByteArrayOutputStream的size()方法获取到contentLength的长度。代码如下:
```
URL url = new URL("https://example.com/test.txt");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream inputStream = connection.getInputStream();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, len);
}
int contentLength = byteArrayOutputStream.size();
```
需要注意的是,这种方法会将InputStream中的数据全部读取到内存中,如果数据量很大,可能会导致内存溢出。因此,建议在读取数据时,使用合适的缓冲区大小,以避免内存溢出的问题。
阅读全文