java从输入流中获取数据并返回字节数组示例



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()`方法将累积的数据转换为字节数组并返回。