I don't know about defaultly, but ImageIO.getReaderMIMETypes()
will give you the list of currently supported readers.
The correct thing to do is probably to try ImageIO.createImageInputStream(file)
- if it doesn't throw an IOException, but returns null, the image is not readable.
Note that ImageIO.read(file)
will also not throw an exception for an unsupported MIME format, it will return null. Exceptions will only be thrown for a supported file that can't be decoded (ie the file is corrupted), or IO errors (obviously).