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多方法,都不靠譜。。。最后弄出來才發現。。。。)
