Является ли ImageIO.write буферизованным? - PullRequest
3 голосов
/ 08 июля 2010

Должен ли я написать

BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(file));
ImageIO.write(im, "JPEG", os);

вместо

ImageIO.write(im, "JPEG", file);

т.е. файловые операции ImageIO буферизируются по умолчанию или нет?

Спасибо!

Ответы [ 3 ]

1 голос
/ 08 июля 2010

Если вы передадите File, базовая реализация запишет непосредственно в RandomAccessFile (созданный в режиме "rw"), поэтому буферизация не будет.В частности, FileImageOutputStream будет использоваться как ImageOutputStream.

0 голосов
/ 10 июля 2010

Вам нужно будет использовать BufferedOutputStream (как в примере 1, упомянутом в вопросе).

ImageIo.write по умолчанию не буферизуетсяЭто зависит от того, что вы передаете ему в аргументах.В случае передачи объекта File он не будет буферизован для записи.

0 голосов
/ 08 июля 2010

Я полагаю, что это зависит от конкретной реализации IIORegistry, которая, как я полагаю, зависит от системы.

Я бы ожидал, что он будет буферизован, но я полагаю, что вы могли бы полностью использовать первый вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...