Я хочу преобразовать объект InputStream, представляющий файл изображения, в объект BufferedImage и после выполнения некоторых операций с BufferedImage преобразовать его обратно в InputStream, чтобы его можно было записать на диск. Я не хочу создавать объект файла на Сначала диск, чтобы предотвратить дополнительные издержки ввода-вывода.
Я думаю, что могу сделать следующее, чтобы преобразовать BufferedImage в InputStream
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(image,fileExtension, outputStream);
InputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
Это правильно? Кроме того, у меня есть следующие два вопроса
- Как получить объект BufferedImage из объекта InputStream
- Могу ли я получить размер файла непосредственно из объекта InputStream?
Некоторый пример действительно помог бы
Спасибо