获取inputStream字节大小
时间: 2024-01-17 10:05:37 浏览: 87
java从输入流中获取数据并返回字节数组示例
要获取一个 InputStream 对象的字节大小,可以使用 Java IO 库提供的 ByteArrayOutputStream 类来实现。具体步骤如下:
1. 创建一个 ByteArrayOutputStream 对象,用来接收 InputStream 对象的数据;
2. 创建一个 byte 数组,用来作为缓冲区,从 InputStream 对象中读取数据;
3. 循环读取 InputStream 对象中的数据,每次读取一定量的数据,并将其写入 ByteArrayOutputStream 对象中;
4. 读取完毕后,关闭 InputStream 对象和 ByteArrayOutputStream 对象;
5. 调用 ByteArrayOutputStream 对象的 toByteArray() 方法获取字节大小。
以下是一个示例代码:
```
public static int getInputStreamSize(InputStream inputStream) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) > -1) {
baos.write(buffer, 0, len);
}
baos.flush();
inputStream.close();
baos.close();
return baos.toByteArray().length;
}
```
注意:这个方法会将 InputStream 对象中的数据全部读取到内存中,如果数据过大,可能会导致内存溢出。因此,建议在读取数据时使用适当的缓冲区大小,以及在读取完毕后及时关闭 InputStream 对象和 ByteArrayOutputStream 对象。
阅读全文