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

Java:使用URL下載圖片為何圖片下載不完全呢?
黃舟
黃舟 2017-04-18 10:51:10
0
3
1093
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而且圖片是錯誤的這是為什么呢?

黃舟
黃舟

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

reply all(3)
小葫蘆

Try changing the code to this

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();
        }
    }
}

The file downloaded without adding UA is actually like this

PHPzhong

outputStream.close()之前,先調(diào)用outputStream.flush(), this method can force all output stream buffers to be written out. What you said before is correct, there is only one step missing.

黃舟

This is what I read using your code.

The target is disabled, add a user-agent attribute to the connection.

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template