InputStream 转换为byte数组
时间: 2023-10-25 15:27:21 浏览: 119
可以使用Java中的ByteArrayOutputStream将InputStream转换为byte数组,具体实现如下:
```java
public byte[] inputStreamToByteArray(InputStream inputStream) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, len);
}
return byteArrayOutputStream.toByteArray();
}
```
这段代码将InputStream中的数据读取到ByteArrayOutputStream中,并最终将其转换为byte数组返回。
相关问题
超过1M的InputStream如何转换成byte数组
可以使用ByteArrayOutputStream来将InputStream转换成byte数组。具体步骤如下:
1. 创建一个ByteArrayOutputStream对象。
2. 创建一个byte数组作为缓冲区。
3. 使用while循环读取InputStream中的数据,每次读取数据后将数据写入ByteArrayOutputStream中。
4. 读取完毕后,将ByteArrayOutputStream中的数据转换成byte数组即可。
以下是示例代码:
```java
public static byte[] inputStreamToByteArray(InputStream inputStream) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, bytesRead);
}
return byteArrayOutputStream.toByteArray();
}
```
使用时只需要传入需要转换的InputStream对象即可,例如:
```java
InputStream inputStream = new FileInputStream("file.txt");
byte[] bytes = inputStreamToByteArray(inputStream);
```
inputstream转为byte数组
可以使用Java的ByteArrayOutputStream来将InputStream转换为byte数组。下面是一个示例代码:
```java
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class Main {
public static byte[] convertInputStreamToByteArray(InputStream inputStream) throws IOException {
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
byteStream.write(buffer, 0, bytesRead);
}
return byteStream.toByteArray();
}
public static void main(String[] args) {
// 假设有一个InputStream对象名为inputStream
InputStream inputStream = ...;
try {
byte[] byteArray = convertInputStreamToByteArray(inputStream);
// 现在byteArray包含了InputStream的内容作为字节数组
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,`convertInputStreamToByteArray`方法接受一个InputStream对象作为参数,并使用ByteArrayOutputStream来逐个读取输入流的字节并写入到字节数组输出流中。最后,通过调用`toByteArray`方法将字节数组输出流转换为字节数组并返回。
请注意,在使用该方法时,需要注意处理可能抛出的IOException异常。
阅读全文