Java:使用URL下载图片为何图片下载不完全呢?
黄舟
黄舟 2017-04-18 10:51:10
0
3
839
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而且图片是错误的这是为什么呢?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

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()之前,先调用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
        About us Disclaimer Sitemap
        php.cn:Public welfare online PHP training,Help PHP learners grow quickly!