import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class InputStreamToBytes {
/**
* 从输入流中获取数据并返回字节数组
*
* @param inputStream 输入流
* @return 字节数组
* @throws IOException 如果在读取输入流时发生错误
*/
public static byte[] inputStreamToBytes(InputStream inputStream) throws IOException {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead;
byte[] data = new byte[1024];
while ((nRead = inputStream.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}
buffer.flush();
return buffer.toByteArray();
}
// 注意:这个方法需要外部提供InputStream对象来调用
}
上述Java代码段展示了如何从输入流(`InputStream`)中获取数据,并将其转换为一个字节数组(`byte[]`)返回。这里使用了`ByteArrayOutputStream`来累积从输入流中读取的数据,直到输入流结束。每次从输入流中读取的数据块大小是1024字节,但会根据实际可用数据调整。最后,通过调用`toByteArray()`方法将累积的数据转换为字节数组并返回。