Пакет javax.imageio.stream
Интерфейс ImageInputStream объединяет операции с потоками и файлами. Для упрощения создания нового класса ImageInputStream предоставляется абстрактный базовый класс ImageInputStreamImpl. Предоставляются конкретные классы реализации (FileImageInputStream, FileCacheImageInputStream и MemoryCacheImageInputStream), позволяющие получать входные данные из File или InputStream с использованием временного файла кэша или без него.
Интерфейс ImageOutputStream выполняет аналогичную функцию для вывода. Предоставляется абстрактный базовый класс ImageOutputStreamImpl, а также конкретные классы реализации (FileImageOutputStream, FileCacheImageOutputStream и MemoryCacheImageOutputStream), позволяющие записывать выходные данные в File или OutputStream с использованием временного файла кэша или без него.
Класс IIOByteBuffer предоставляет альтернативный способ чтения последовательностей байтов, позволяющий сократить объем внутреннего копирования данных.
ImageInputStream или ImageOutputStream может выделять системные ресурсы, например временный файл кэша. Рекомендуется использовать конструкцию try-with-resources, чтобы гарантировать вызов метода ImageInputStream.close() или ImageInputStream.close(), который позволяет своевременно освободить эти собственные ресурсы. В противном случае они могут утечь и со временем привести к сбою приложения; кроме того, существует вероятность, что не все данные будут сброшены в базовый выходной поток. Из этого следует, что такой поток следует закрывать до закрытия целевого OutputStream. Простой пример:
try (FileOutputStream fos = new FileOutputStream("out.jpg");
ImageOutputStream ios = new FileCacheImageOutputStream(fos, null)) {
ImageIO.write(img, "jpg", ios);
} catch (IOException e) {
} // implicit finally block closes the streams in the reverse order to opening
Наследники этих типов потоков API Image I/O могут в некоторой степени защитить приложение от последствий незакрытия потоков, используя такие механизмы, как Cleaner, для освобождения внутренних ресурсов, когда объект становится недоступен. Это необходимо только в том случае, если есть ресурсы, которые нужно освободить. Однако приложения не должны полагаться на такой механизм ни для управления ресурсами, ни для корректности работы программы.
- Начиная с:
- 1.4
| Класс | Описание |
|---|---|
| FileCacheImageInputStream | Реализация ImageInputStream, получающая входные данные из обычного InputStream. |
| FileCacheImageOutputStream | Реализация ImageOutputStream, записывающая выходные данные в обычный OutputStream. |
| FileImageInputStream | Реализация ImageInputStream, получающая входные данные из File или RandomAccessFile. |
| FileImageOutputStream | Реализация ImageOutputStream, записывающая выходные данные непосредственно в File или RandomAccessFile. |
| IIOByteBuffer | Класс, представляющий изменяемую ссылку на массив байтов, а также смещение и длину области в этом массиве. |
| ImageInputStream | Интерфейс потока ввода с поддержкой позиционирования, предназначенный для использования ImageReader. |
| ImageInputStreamImpl | Абстрактный класс, реализующий интерфейс ImageInputStream. |
| ImageOutputStream | Интерфейс потока вывода с поддержкой позиционирования, предназначенный для использования ImageWriter. |
| ImageOutputStreamImpl | Абстрактный класс, реализующий интерфейс ImageOutputStream. |
| MemoryCacheImageInputStream | Реализация ImageInputStream, получающая входные данные из обычного InputStream. |
| MemoryCacheImageOutputStream | Реализация ImageOutputStream, записывающая выходные данные в обычный OutputStream. |
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.