亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Java:使用URL下載圖片為何圖片下載不完全呢?
黃舟
黃舟 2017-04-18 10:51:10
0
3
1094
public class Client {
    public static void main(String[] args) {
        try {
            URL url = new URL("http://www.iteye.com/upload/logo/user/1177132/a7159cc1-b11a-3122-9a9d-5183d6c6ba99.jpg");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setConnectTimeout(5 * 1000);
            InputStream inputStream = connection.getInputStream();
            byte[] tmp = new byte[1024];
            int length;
            OutputStream outputStream = new FileOutputStream("E:" + File.separator + "eee.jpg");
            while ((length = inputStream.read(tmp)) != -1) {
                outputStream.write(tmp, 0, length);
            }
            outputStream.close();
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

圖片URL:
http://www.iteye.com/upload/l...
圖片有3K,但我下載后圖片只有2K而且圖片是錯(cuò)誤的這是為什么呢?

黃舟
黃舟

人生最曼妙的風(fēng)景,竟是內(nèi)心的淡定與從容!

全部回覆(3)
小葫蘆

你把程式碼改成這樣試試

public class Client {
    public static void main(String[] args) {
        try {
            URL url = new URL("http://www.iteye.com/upload/logo/user/1177132/a7159cc1-b11a-3122-9a9d-5183d6c6ba99.jpg");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.19 Safari/537.36");
            connection.setConnectTimeout(5 * 1000);
            InputStream inputStream = connection.getInputStream();
            byte[] tmp = new byte[1024];
            int length;
            OutputStream outputStream = new FileOutputStream("E:" + File.separator + "eee.jpg");
            while ((length = inputStream.read(tmp)) != -1) {
                outputStream.write(tmp, 0, length);
            }
            outputStream.close();
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

不加UA下載下來的檔案其實(shí)是這樣的

PHPzhong

outputStream.close()之前,先調(diào)用outputStream.flush(),這個(gè)方法能強(qiáng)制把輸出流緩衝全部寫出來。你前邊的都沒錯(cuò),就差一步了。

黃舟

這是我用你的程式碼讀到的東西。

目標(biāo)禁止了,為connection增加一個(gè)user-agent屬性吧。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板