2017-01-16 3 views
0

У меня есть этот кусок кодаImageIO является нулевым ByteArrayInputStream чтение

System.out.println ("fileData 1 -> " + fileData); 

ByteArrayInputStream in = new ByteArrayInputStream(fileData); 

System.out.println ("fileData 2 -> " + in); 

try { 
    BufferedImage img = ImageIO.read(in); 
    System.out.println ("fileData 3 -> " + img); 

.... 

и это то, что я вижу в консоли:

fileData 1 -> [[email protected] 
fileData 2 -> [email protected] 
fileData 3 -> null 

Как получилось, что BufferedImage является недействительным и не бросает исключение ?

+0

Библиотека решила передать null вместо исключения исключения? Посмотрите на источники .... –

+0

Читая документацию для ImageIO, я думаю, вы могли бы использовать ByteArrayInputStream для ImageInputStream. ImageIO.read (ImageIO.createImageInputStream (есть)); –

+0

'fileData' - это не строковый объект, и вы пытаетесь его распечатать. –

ответ

0

documentation говорит, это может быть пустым:

Возвращает BufferedImage в результате декодирования прилагаемого InputStream с ImageReader выбранной автоматически из числа тех, кто в настоящее время не зарегистрировано. InputStream завернут в ImageInputStream. Если ни один зарегистрированный ImageReader не претендует на получение , прочитайте полученный поток, возвращается null. [...]

Смежные вопросы