尝试使用由File构造的InputStream.
ImageIO.createImageInputStream(new FileInputStream(f));
这是一个相关的example.
附录:仔细观察ImageIO.createImageInputStream(),它确实说允许文件.实际上,您的原始代码适用于我的平台(Mac OS X),这使我推测null结果可能是您的平台ImageInputStreamSpi实现所特有的.对于不存在的文件f,
ImageIO.createImageInputStream(f);
我得到了一个合理的例外:
Exception in thread "main" java.lang.IllegalStateException: Input not set!
at com.sun.imageio.plugins.gif.GIFImageReader.read(GIFImageReader.java:784)
at javax.imageio.ImageReader.read(ImageReader.java:923)
at cli.GifBounds.search(GifBounds.java:22)
at cli.GifBounds.main(GifBounds.java:14)