将输入流(InputStream)转换为字节数组(byte[])
这段代码是一个Java方法,用于将输入流(InputStream)转换为字节数组(byte[])。
方法的实现过程如下:
- 创建一个ByteArrayOutputStream对象,用于存储从输入流中读取的数据。
- 定义一个大小为1024的字节数组b,用于临时存储从输入流中读取的数据。
- 使用while循环不断从输入流中读取数据,直到读取完毕(即is.read(b)返回-1)。
- 在每次循环中,调用is.read(b)方法将数据读取到字节数组b中,并将实际读取到的字节数赋值给变量len。
- 使用bos.write(b, 0, len)方法将读取到的数据写入到ByteArrayOutputStream对象中。
- 调用bos.toByteArray()方法将ByteArrayOutputStream对象转换为字节数组array。
- 关闭ByteArrayOutputStream对象。
- 返回转换后的字节数组array。
package day28.UpLoad;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
* 此类用于演示关于流的读写方法
*
*/
public class StreamUtils {
/**
* 功能:将输入流转换成 byte[]
*
* @param is
* @return
* @throws Exception
*/
public static byte[] streamToByteArray(InputStream is) throws Exception {
ByteArrayOutputStream bos = new ByteArrayOutputStream();//创建输出流对象
byte[] b = new byte[1024];
int len;
while ((len = is.read(b)) != -1) {
bos.write(b, 0, len);
}
byte[] array = bos.toByteArray();
bos.close();
return array;
}
}
/**
* 功能:将 InputStream 转换成 String
* @param
* @return
* @throws Exception
*/