import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
/**
* 使用URLConnection下载文件或图片并保存到本地。
*/
public class URLConnectionDownloader {
public static void main(String[] args) throws Exception {
String url = "http://mt1.google.cn/vt/v=w2.114&hl=zh-CN&gl=cn&x=1&y=1&z=1";
// String url = "http://www.google.cn/intl/zh-CN/images/logo_cn.gif";
String fileDir = "d:\\a\\";
String fileName = "abc.jpg";
makeDir(fileDir);
download(url, fileDir+fileName);
System.out.println("下载图片完毕!");
}
/**
* 下载文件到本地
*
* @param urlString
* 被下载的文件地址
* @param filename
* 本地文件名
* @throws Exception
* 各种异常
*/
public static void download(String urlString, String filename)
throws Exception {
// 构造URL
URL url = new URL(urlString);
// 打开连接
URLConnection con = url.openConnection();
// 设置Java服务器代理连接,要不然报错403
// 浏览器可以访问此url图片并显示,但用Java程序就不行报错Server returned HTTP response code:403 for URL
// 具体原因:服务器的安全设置不接受Java程序作为客户端访问(被屏蔽),解决办法是设置客户端的User Agent
con.setRequestProperty("User-Agent", "Mozilla/4.0(compatible;MSIE 5.0;Windows NT;DigExt)");
// 输入流
InputStream is = con.getInputStream();
// 1K的数据缓冲
byte[] bs = new byte[1024];
// 读取到的数据长度
int len;
// 输出的文件流
OutputStream os = new FileOutputStream(filename);
// 开始读取
while ((len = is.read(bs)) != -1) {
os.write(bs, 0, len);
}
// 完毕,关闭所有链接
os.close();
is.close();
}
private static void makeDir(String fileFolder) {
File file = new File(fileFolder);
if (!file.exists() && !file.isDirectory())
file.mkdir();
}
}
分享到:
相关推荐
* 使用URLConnection下载文件或图片并保存到本地。 * * @author 老紫竹(laozizhu.com) */ public class URLConnectionDownloader { public static void main(String[] args) throws Exception { ...
使用URL和URLConnection(多线程下载)
一个通过Socket或URLConnection传文件的示例 Socket URLConnection 文件传输
URLConnection和HttpClient使用入门
android 使用URL和URLConnection(多线程下载)_Hi Android_百度空间
使用URLCONNECTION对象访问远程文件
用NSURLConnection实现文件下载,OC代码
URL以及URLConnection的使用
使用URLConnection来建立连接,获取到的数据写到文件中。 URLConnection建立连接后,可以获取到数据长度。由此我们可以计算出下载进度。 public class DownloadStreamThread extends Thread { String urlStr; ...
本篇文章主要介绍了Java两种方式简单实现:爬取网页并且保存 ,主要用UrlConnection、HttpClient爬取实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
如果你用java编写了一个类似QQ的客户端(举例说明),想给webqq这样的网页或是servlet等发送消息,实现交互,那么URLConnection对你会很有帮助。需要的朋友请下载,如果有需要我们也可以互相交流,我也是一个java...
JDK中的URLConnection参数详解
java URLConnection 的详细介绍,牛人项目经验的总结,绝对通俗易懂,包括cookie操作,上传文件,以及下载网页等介绍,是非常难得文档和教材
Java自带的HttpURLConnection访问接口文件上传, 含普通参数值传递和文件传递
URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和URL之间的通信连接。程序可以通过URLConnection实例向该URL发送请求,读取URL引用的资源。 程序Demo示范了如何向Web站点发送GET请求、...
利用URLConnection获取要下载文件的长度、头部等相关信息,并设置响应的头部信息。 并且通过URLConnection获取输入流,将文件分成指定的块,每一块单独开辟一个线程完成数据的读取、写入。 通过输入流读取下载文件的...
okhttp-urlconnection:3.10.0
同时使用picasso和OKHttp的时候,需要加入OKHttp-urlconnection
okhttp-urlconnection-3.4.1.jar okhttp-urlconnection okhttp-urlconnection-3.4.1.jar下载