java 下载 url-使用java通过URL下载图片不正常

问题描述

使用java通过URL下载图片不正常

http://zcimg.zcool.com.cn/zcimg/m_c6fe5449f86a0000016004e746c6.jpg
第一条地址可以正确下到图片
http://www.zcool.com.cn/img.html#src=/zcimg/905054488bb700000160049caba7.jpg
第二条地址下载下来的图片只有1KB且打不开

怀疑是不是#src的问题

下载代码
public static void downloadImage(URL url,String filePath){
try{
setParams(url,filePath);
System.out.println("Downloading image from " + url);
File outFile = new File(filePath + (count+1) + ".png");
OutputStream os = new FileOutputStream(outFile);
InputStream is = url.openStream();
byte[] buff = new byte[1024];//一次读取的数据为1024Byte
while(true) {
int readedLength = is.read(buff);//一次读取1024Byte写入buff
if(readedLength == -1) {
break;
}
byte[] temp = new byte[readedLength];
System.arraycopy(buff, 0, temp, 0, readedLength);
os.write(temp);
}
is.close();
os.close();
System.out.println("Download Finish " + (count + 1));
count++;
}
catch(Exception e){
e.printStackTrace();
}
}

谢谢。。。

解决方案

特殊字符的问题
url=encodeURI(url);

时间: 2024-09-20 06:42:12

java 下载 url-使用java通过URL下载图片不正常的相关文章

Java魔法堂:URI、URL(含URL Protocol Handler)和URN

一.前言   过去一直搞不清什么是URI什么是URL,现在是时候好好弄清楚它们了!本文作为学习笔记,以便日后查询,若有纰漏请大家指正!   二.从URI说起    1. 概念   URI(Uniform Resource Identifier,统一资源标识符)以字符串来表示某种资源的统一资源标识.   格式为: [scheme:]scheme-specific-part[#fragment]    [scheme:]组件 ,URI的名称空间标识.   scheme-specific-part组件

java 多线程-为什么使用Java多线程下载文件时下载后的文件和服务器端文件大小一模一样但是无法打开

问题描述 为什么使用Java多线程下载文件时下载后的文件和服务器端文件大小一模一样但是无法打开 为什么使用Java多线程下载文件时下载后的文件和服务器端文件大小一模一样但是无法打开?? package com.miuitust.mutilethread; import java.io.File; import java.io.InputStream; import java.io.RandomAccessFile; import java.net.HttpURLConnection; impor

添加-怎样下载超过1000个的url?

问题描述 怎样下载超过1000个的url? 爬虫获得了上百万个url.但是迅雷单次只能添加1000个 有什么办法吗? 解决方案 好吧 其实爬虫是软件实现的 很多爬虫软件啊 问题解决了 用 wget 解决方案二: 分批下载就是了,每次1000个,也就1000次. 解决方案三: 自己来下载,不用迅雷. 你都实现爬虫了,那么下载的库也有很多可以用来调用的. 解决方案四: 调用库吧........... 解决方案五: java版根据url获取网页数据: private String getHTML(St

java中struts2实现文件上传下载功能_java

先谈一谈struts2实现文件的上传和下载实例实现的原理: Struts 2是通过Commons FileUpload文件上传. Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中.从而我们就能够以本地文件方式的操作浏览器上传的文件. 具体实现: 一.创建index.jsp页面 <body> <s:form action="upload" method="p

Java网络编程:实现HTTP断点续传下载工具(附源代码)

本文为原创,如需转载,请注明作者和出处,谢谢! 源代码下载:download.rar     在前面的文章曾讨论了HTTP消息头的三个和断点继传有关的字段.一个是请求消息的字段Range,另两个是响应消息字段Accept-Ranges和Content-Range.其中Accept-Ranges用来断定Web服务器是否支持断点继传功能.在这里为了演示如何实现断点继传功能,假设Web服务器支持这个功能:因此,我们只使用Range和Content-Range来完成一个断点继传工具的开发. l     

视频下载器用java怎么做

问题描述 视频下载器用java怎么做 视频下载器用java怎么做,就是直接把视频地址放上去就下载,请问怎么做 解决方案 网页吗?还是?没明白你的意思

java 下载 断点续传-用java语言从web下载文件到本地指定路径下

问题描述 用java语言从web下载文件到本地指定路径下 java语言实现从外部网站下载文件到我们公司的服务器上,支持断点续传并且用一个线程下载一个文件,请问哪位有什么思路或者源码参考.麻烦大家给我出出主意. 网上都是从服务器上下载到本地的案例.这种可以应用到我这种需求上吗? 顺便问下http协议和ftp协议下载文件是否支持下载到本地指定路径,对文件大小类型有没有限制. 解决方案 1.先用代码解析外部网站下载页面获取下载地址 2.代码实现http协议请求解析得到的下载地址,下载文件到本地 3.代

java网络编程中向指定URL发送GET POST请求示例_java

复制代码 代码如下: import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLConnection;import jav

php实现把url转换迅雷thunder资源下载地址的方法_php技巧

本文实例讲述了php实现把url转换迅雷thunder资源下载地址的方法.分享给大家供大家参考.具体方法分析如下: 如果你知道迅雷地址的生成规则你就不觉得迅雷的url资源下载地址有多么复杂了, 其实雷的地址就是原url前面带AA后面带BB之后再base64_encode编码即可 如下例子所示: 复制代码 代码如下: <?php function Thunder($url, $type='en') { $url ='http://www.jb51.net'; if($type =='en'){ r

sftp下载zip文件-java从sftp上下载到本地磁盘的zip文件读取不了,请大家帮忙解答下,谢谢!

问题描述 java从sftp上下载到本地磁盘的zip文件读取不了,请大家帮忙解答下,谢谢! 从sftp上下载到本地的zip文件是没问题的,用压缩工具打开能查看里面的文件,为什么就是读取不了呢? java从sftp下载zip文件到本地磁盘代码: import java.io.InputStream; import java.util.Date; import com.ibm.gbs.ai.portal.framework.util.DateUtils; import com.jcraft.jsch