本地图片File转InputStream:

File file = new File(filePath);
FileInputStream inputStream = new FileInputStream(file);

网络图片转InputStream:

InputStream inputStream = getInputStream(path);

BufferedImage转FileOutputStream:

BufferedImage image = ImageIO.read(filePath1);  // 从本地读取一张图片

对图片进行处理。。。

FileOutputStream out = new FileOutputStream(filePath2);  // 将处理后的图片保存到本地
ImageIO.write(image, "jpg", out);
out.close();

BufferedImage转ByteArrayOutputStream:

BufferedImage bufferedImage = Thumbnails.of(HttpUtils.getInputStream(filePath)).scale(0.1f).outputQuality(1f).asBufferedImage();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", outputStream);

InputStream转OutputStream:

ByteArrayOutputStream os = cloneInputStream(inputStream);

流转字节数组:
byte[] fileByteArray = os.toByteArray();

---------------------------------------------------------------------------------------------------------------------

2021-06-18更新:

Hutool中的IoUitl封装了很多API,方便我们直接调用:

ByteArrayInputStream in = IoUtil.toUtf8Stream(HttpUtil.get(imageUrl));  // 网络图片转输入流

ByteArrayOutputStream out = new ByteArrayOutputStream();  // 声明一个输出流

IoUtil.copy(in, out, IoUtil.DEFAULT_BUFFER_SIZE);  // 将输入流拷贝到输出流中

out.toByteArray();  // 输出流转字节数组

IoUtil.readBytes(in);  // 省略创建输出流的步骤,直接将输入流转为字节数组