Java:使用URL下载图片为何图片下载不完全呢?
 import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

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/logo/user/1177132/a7159cc1-b11a-3122-9a9d-5183d6c6ba99.jpg
图片有3K,但我下载后图片只有2K这是为什么呢?

7个回答

connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); 在你conn下面加上这段代码 就可以了。

connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); 在你conn下面加上这段代码 就可以了。

qq_38069781
qq_38069781 回复一筐愿望: 好尴尬啊
2 年多之前 回复
u011605971
一筐愿望 卧槽,选错了你回答得早而且他是复制你的,不好意思
2 年多之前 回复

关闭流之前,执行outputStream.flush()方法,将缓冲区的数据写入到文件中

u011605971
一筐愿望 应该不是这个问题,加上也不行
2 年多之前 回复

java的httpurl其实就是发送一次request,没有内置request参数值是不能成功的

楼主忘记要刷新缓存了!方法:outputStream.flush();记得关闭数据流

判断文件有没有读完的if条件写的不对

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!