我嘗試從url獲取圖片然后保存到本地,但是圖片顯示不正常,而且貌似圖片大小比原圖會大了一點,這是為什么?import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.net.URL;import java.net.URLConnection;public class DownloadImage { public static void main(String[] args){ BufferedReader bufferedReader = null; FileOutputStream fileOutputStream = null; URL imageUrl = null; String str = null; URLConnection urlConnection = null; InputStream urlInputStream = null; byte[] byteArray = new byte[1024]; File imageFile = null; try { bufferedReader = new BufferedReader(new FileReader("resources/imageURL")); //這個文件的內(nèi)容是url地址 while((str = bufferedReader.readLine()) != null){ imageUrl = new URL(str); urlConnection = imageUrl.openConnection(); urlConnection.connect(); urlInputStream = urlConnection.getInputStream(); imageFile = new File("resources/image/" + str.substring(str.lastIndexOf("/")+1)); if(!imageFile.exists()) imageFile.createNewFile(); fileOutputStream = new FileOutputStream(imageFile); while(urlInputStream.read(byteArray) != -1){ fileOutputStream.write(byteArray); } fileOutputStream.close(); urlInputStream.close(); } } catch (IOException e) { e.printStackTrace(); }finally{ try { bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } System.out.println("Done!"); } }}
3 回答

阿波羅的戰(zhàn)車
TA貢獻(xiàn)1862條經(jīng)驗 獲得超6個贊

慕妹3146593
TA貢獻(xiàn)1820條經(jīng)驗 獲得超9個贊
byte[] byteArray = new byte[這個數(shù)字暫時改成大一點的試試,比一張圖片稍大即可
]
你說圖片比原來圖片大一點,你直接點圖片url 右鍵另存為,然后跟你代碼爬下來的比較一下看看。
如果不一樣的話我覺得很可能是因為二進制沒寫好的問題。
添加回答
舉報
0/150
提交
取消