java 判断图片是否损坏
try{ File f = new File(mPicFilePath+mPicFileName); FileInputStream fi = new FileInputStream(f); try{ BufferedImage sourceImg =ImageIO.read(fi);//判断图片是否损坏 int picWidth= sourceImg.getWidth(); //确保图片是正确的(正确的图片可以取得宽度) }catch (Exception e) { // TODO: handle exception fi.close();//关闭IO流才能操作图片 FileUtil.Move(mPicFilePath+mPicFileName,MainFrame.mDirErrorFiles); return; }finally{ fi.close();//最后一定要关闭IO流 } }catch (Exception e ) { // TODO: handle exception System.out.println(e.toString()); return; }
因为ImageIO 没有关闭方法,所以图片读取过程必须拆开,这样才能关闭IO流。
(ps:在网上找了一下午的方法,试了N多方法,都不靠谱。。。最后弄出来才发现。。。。)