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

黄舟
黄舟

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

répondre à tous (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下载下来的文件其实是这样的

    PHPzhong

    outputStream.close()之前,先调用outputStream.flush(),这个方法能强制把输出流缓冲全部写出来。你前边的都没错,就差一步了。

      黄舟

      这是我用你的代码读到的东西。

      目标禁止了,为connection添加一个user-agent属性吧。

        Derniers téléchargements
        Plus>
        effets Web
        Code source du site Web
        Matériel du site Web
        Modèle frontal
        À propos de nous Clause de non-responsabilité Sitemap
        Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!