JAVA?ImageIO.read方法報錯/無效問題及解決
JAVA ImageIO.read方法報錯/無效
最近開始學(xué)習(xí)JAVA,使用到j(luò)avax.imageio包里的read方法,不論我怎么寫,IDEA一直報錯。
如圖

其實這個問題很容易解決,但是JAVA初學(xué)者往往不能理解——只需要用try/catch吧需要處理的代碼包圍就可以了。
try {
BufferedImage bi = ImageIO.read(file);
} catch (IOException e) {
e.printStackTrace();
}
但是這樣bi就變成了一個局部變量,這樣我們就沒法使用了,那該怎么處理呢?
解決
其實這個問題的解決方法也很明了,但是JAVA初學(xué)者可能無法理解——只要把需要的語句都添加到try的語句塊里面就可以了
try {
BufferedImage bi = ImageIO.read(file);
int width= bi.getWidth();
int height= bi.getHeight();
int[][] data =new int[width][height];
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
data[i][j] = bi.getRGB(i, j);//得到的是sRGB值,4字節(jié)
}
}
compressImg(width,height,data,6);
} catch (IOException e) {
e.printStackTrace();
}
但是需要注意的一點是,read的file路徑是不能有中文的,java文件可能也不能放在含中文的路徑中。
否則的話會catch到如下錯誤:
javax.imageio.IIOException: Can’t read input file!
at javax.imageio.ImageIO.read(Unknown Source)
at test.main(test.java:22)
如果你可以使用JAVA的一些文件方法來對文件進行操作,但是不能使用ImageIO.read()的話,你就應(yīng)該查看自己的文件路徑是否含有中文或其他特殊字符了。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring定時器@Scheduled異步調(diào)用方式
在Spring Boot中,@Schedule默認(rèn)使用單線程執(zhí)行定時任務(wù),多個定時器會按順序執(zhí)行,為實現(xiàn)異步執(zhí)行,可以通過自定義線程池或?qū)崿F(xiàn)SchedulingConfigurer接口,使用自定義線程池可以保證多個定時器并發(fā)執(zhí)行2024-11-11
java多態(tài)性中的Overload和Override區(qū)別詳解
這篇文章主要介紹了java多態(tài)性中的Overload和Override區(qū)別詳解,重寫(Overriding)是父類與子類之間多態(tài)性的一種表現(xiàn),而重載(Overloading)是一個類中多態(tài)性的一種表現(xiàn),需要的朋友可以參考下2023-07-07
JavaEE的進程,線程和創(chuàng)建線程的5種方式詳解
這篇文章主要為大家詳細(xì)介紹了JavaEE的進程,線程和創(chuàng)建線程的5種方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
詳解java操作Redis數(shù)據(jù)庫的redis工具(RedisUtil,jedis工具JedisUtil,JedisPoo
這篇文章主要介紹了java操作Redis數(shù)據(jù)庫的redis工具,包括RedisUtil,jedis工具JedisUtil,JedisPoolUtil工具,本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-08-08
java 在Jetty9中使用HttpSessionListener和Filter
這篇文章主要介紹了java 在Jetty9中使用HttpSessionListener和Filter的相關(guān)資料,需要的朋友可以參考下2017-06-06
Java中的springboot監(jiān)聽事件和處理事件詳解
這篇文章主要介紹了Java中的springboot監(jiān)聽事件和處理事件,這個示例展示了如何在Spring Boot應(yīng)用中定義自定義事件、發(fā)布事件以及監(jiān)聽事件,需要的朋友可以參考下2024-07-07

